2011-11-09 2 views
1

내 기능을 가져 변수가 주어진 바르와 DB에서 오류 메시지를 가져옵니다 $status (0-오류, 1-성공) 및 $field (입력 필드의 이름) $err_id (오류 DB에서 메시지의 아이디) .갖는 문제

오류가 발생한 곳을 감지하기 위해 모든 단계에서 die()을 시도했으며, err 직후에 die($status.$err_id.$field);을 배치했습니다. 성공하지 못했습니다.

netbeans로 꾸며졌습니다. 디버그 기능이 중지 된 행을 표시했습니다.

$ msg는 항상 null입니다. db에서 가져올 수 없습니다. PHP 오류 로그에는 오류가 없습니다. 내 코드가 실수 일 수 있습니까? 이것을 봐주세요.

function err($status, $err_id = 0, $field = 0) 
{ 
     global $db; 
     if ($status == 0) { 
       $stmt = $db->prepare("SELECT msg FROM err_msgs WHERE field = ? AND id= ?") or die(htmlspecialchars($db->error)); 
       $stmt->bind_param("si", $field, $err_id) or die(htmlspecialchars($stmt->error)); 
       $stmt->execute() or die(htmlspecialchars($stmt->error)); 
       $stmt->bind_result($msg) or die(htmlspecialchars($stmt->error)); 

       >>debug stops here>> $stmt->fetch() or die(htmlspecialchars($stmt->error)); 

       response('error', $msg); 
       $stmt->close(); 
       die(); 

     } else { 
       response('success', 'Success!'); 

     } 

} 
+0

는 아파치 오류 로그를 확인 결과 바인딩 후 가져 깜빡

$stmt->bind_result($msg) or die(htmlspecialchars($stmt->error)); $stmt->execute() or die(htmlspecialchars($stmt->error)); 

+0

@MarcB 메신저가 있으십니까? 내 skype : tural.teyyuboglu. 우리가 당신과 채팅 할 수 있도록 나를 추가하십시오. 나는 두통을 앓고있다. 모든 가능한 방법을 시도해보기 다른 관점 에서이 코드를보고 dev에 눈이 필요합니다 –

+0

미안 해요, 아파치 오류 로그에 대해 생각할 수있는 전부입니다. 어떤 종류의 오류 메시지도없이 진단하는 것은 거의 불가능합니다. –

답변

0

에? 뭔가 자체를 기록 할 기회가 생기기 전에 PHP를 죽이는 것이 될 수 있습니다.
0

이 두 라인을 전환 해보십시오 :

$stmt->execute() or die(htmlspecialchars($stmt->error)); 
$stmt->bind_result($msg) or die(htmlspecialchars($stmt->error)); 

내가

$stmt->fetch() 
+1

"모든 컬럼은 mysqli_stmt_execute()와 mysqli_stmt_fetch()를 호출하기 전에 바인드되어야한다." http://www.php.net/manual/en/mysqli-stmt.bind-result.php에있는 문서를 참조하십시오. –

+0

내 사이트의 포럼에서 몇 가지 테스트를 수행했으며 실행 전후에 bind_result를 사용하여 두 가지 방식으로 작동합니다. 나는 그것이 작동하게하기 위해 그것을 뒤에서 바꿔야한다고 기억하고 있음을 맹세 할 수있다. – Frank