$ wpdb-> get_results ()에 의해 생성 된 오류 감지


9

$ wpdb-> get_results ()를 사용할 때 오류를 어떻게 감지합니까?

예를 들면 다음과 같습니다.

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");

앞의 코드는 예외 나 오류를 생성하지 않습니다. 단순히 $ result를 빈 배열로 설정합니다. get_results ()에 의해 생성 된 오류를 어떻게 안정적으로 감지합니까?

답변:


7

마지막 오류 문자열 인 $ wpdb-> last_error를 저장하는 클래스 변수가 있습니다. $ wpdb가 코딩되는 방식에 따르면 쿼리가 성공하면 $ wpdb-> last_error는 빈 문자열이되고 실패하면 MySQL이 반환 한 오류 문자열이됩니다. 따라서 이와 같은 것이 속임수입니다.

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
if ($wpdb->last_error) {
  echo 'You done bad! ' . $wpdb->last_error;
}

합리적으로 들립니다-지금은 이것으로 볼 수 없지만, 이것이 효과가 있다면 앞으로 유용 할 것입니다! 감사! :)
rinogo

나중의 과제에서 이것으로 돌아 왔습니다-훌륭합니다! 이 코드를 함수에 넣었습니다. 답변을 업데이트했습니다. 나는 당신이 상관하지 않기를 바랍니다!
rinogo

1

내가 찾을 수있는 최선은 다음과 같습니다.

$wpdb->show_errors();
$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
$wpdb->hide_errors();

불행히도, 그것은 거의 문제를 해결하지 못한다. 오류를 출력 스트림에 에코하는 것이 아니라 프로그래밍 방식으로 오류를 처리하고 싶습니다.


나는 항상 출력 버퍼를 가로 채서 뭔가 불쾌한 일을 할 수 있다고 생각합니다 ... : /
rinogo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.