2013-01-17 5 views
0

MySQLi 준비 문을 사용하여 데이터베이스에 간단한 SELECT 쿼리를 만들려고합니다. 나는 많은 튜토리얼을 읽고 매우 밀접하게 따라했지만 어떤 이유로 그것은 여전히 ​​작동하지 않습니다. 다음은 쿼리 코드입니다.왜이 기본 mysqli 준비 문은 작동하지 않습니까?

<?php 
$user = 'abc'; 
$dbconn = new mysqli("localhost", "my_user", "my_password", "my_table"); 

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
if ($stmt = $dbconn->prepare("SELECT id, pass FROM my_table WHERE user=?")) { 
$stmt->bind_param("s",$user);  
$stmt->execute(); 
$stmt->bind_result($db_id,$db_pass); 
$stmt->fetch(); 
$stmt->close(); 
} 
$dbconn->close(); 
echo $db_id . ' ' . $db_pass; 
?> 

실행하면 연결할 때 오류가 발생하지만 서버 오류가 발생합니다. 필자는 PHP 경험이 적지 만 MySQLi 준비 문을 완전히 처음 접했습니다. 어떤 도움이라도 대단히 감사하겠습니다. 시간 내 주셔서 감사합니다.

답변

2

PHP 사용 경험이 많은 사람은 오류보고에 대해 매우 냉담합니다.
오류 메시지를 제공하지 않으므로 일반 웹 서버의 503 응답이라고 추측 할 수 있습니다.
이 경우 서버의 error_log에서 실제 오류 메시지를 검색하고 읽은 다음이를 수정하기위한 적절한 조치를 취해야합니다.

$dbconn->error도 확인하는 것이 좋습니다.

는보고 오류의 두 방법이 있습니다 : (프로덕션 서버에서 절대해야) 로그를 작성 (개발에서 괜찮은 받아 들일 수없는 생산에)

  • 에 화면을 표시

    이 동작에 책임이있는 일부 ini 설정이 있습니다. 이 오류를 표시해야합니다 여부를

  • log_errors이 오류를 기록하거나 안 wheither PHP는 말한다 wheither

    • display_errors는 PHP를 알려줍니다. 기본적으로는
    • error_log는 PHP 오류가 호스팅 도구를 사용하여 적절한 설정을 설정하십시오

  • 를 기록 할 파일 이름의 PHP를 알려줍니다 웹 서버 '의 error_log에 기록합니다.
    그렇지 않으면이 호스트를 사용할 수 없습니다. 오류 메시지가 표시되지 않으면 프로그래머가 작동하지 않습니다.

    일단 오류 메시지를 확인하면 Google 검색 양식으로 직접 전달하는 것이 매우 유용합니다.

    $dbconn = new mysqli("localhost", "my_user", "my_password", "my_table"); 
    

    가되어야한다 :

    $dbconn = new mysqli("localhost", "my_user", "my_password", "my_db"); 
    

    가 시도하고 어떻게 볼 가능성이 가장 높은 사람은 이미 내가 선이 있다는 것입니다 참조하는 것과 같은, 심지어 asked it on Stackoverflow

    +0

    저는 새로운 호스트에 있으므로 로그가 어떻게 작동하는지 100 % 확신하지 못합니다. 하지만 내가 볼 수있는 유일한 유형의 오류를 확인하면 "$ mysql 값을 설정 한 줄에"클래스 'mysqli'이 (가) 없습니다 ... "라는 메시지가 나타납니다. 이것은 내 프로그램에 'MySQLi'를 설치해야한다는 것을 의미합니까? –

    1

    가장 먼저하는 일이 발생했습니다.

    관련 문제