2012-08-22 4 views
-2

데이터베이스를 검사하여 등록 사용자가 등록 양식에 입력 한 것과 동일한 확인 코드가 있는지 확인하고 싶습니다. 그러나 나는 오류가 계속 : 뭔가 잘못을PHP MYSQL db 참조 오류

나는 밖으로 만들 수있는에서
"Warning: mysql_result() expects parameter 1 to be resource, boolean given in /home/elight5/public_html/test/student_register.php on line 15" 

, 즉 .....이 정의되지 않은 변수가 있지만이 dB의 값이 적절하게 이름을 알고 의미가 내 통사론? 사이트 전체에서 동일한 문법을 ​​문제없이 사용하고 있습니다. ...

내 코드에 대한 제안이나 오류가 있습니까?

function confirmcode_exists($confirmcode){ 
    $confirmcode = sanitize($confirmcode); 
    return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `confirmcode` = '$confirmcode'"), 0) == 1) ? true : false; 

} 
+3

이 오류는 데이터베이스 연결이 유효하지 않음을 의미합니다. 연결 실패는 연결이 아닌 거짓을 제공합니다. 무엇이 실패했는지 확인하려면 디버깅을 추가해야합니다. – andrewsi

+0

새 코드를 작성하는 데 mysql_ * 함수를 사용하지 마십시오. 더 이상 유지 관리되지 않으며 커뮤니티가 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. * [빨간색 상자] (http://goo.gl/GPmFd) *를 참조하십시오. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 어떤 것을 결정할 수 없다면 [이 기사] (http://goo.gl/3gqF9)가 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 가이드입니다] (http://goo.gl/vFWnC). –

+0

@andrewsi : 답변으로 게시해야합니다. –

답변

0

mysql_result()에 대한 오류는 MySQL의 쿼리가 실패한다는됩니다.

실제 SQL 쿼리는 구문 적으로 올바르지 않습니다. 이는 테이블 또는 열의 철자가 틀리거나 연결에 해당 테이블에 대한 액세스 권한이 없거나 연결이 모두 잘못되었다는 것을 의미합니다 .

코드를 다음과 같이 업데이트하십시오. 이 실제 오류가 무엇인지 보여 주어야합니다 :

$result = mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `confirmcode` = '$confirmcode'"); 
if (!$result) { 
    // query error 
    die('Error: ' . mysql_error()); 
} 
return (mysql_result($result, 0) == 1);