Word press - get_results() - 실패 또는 비어 있는지 확인하는 방법
Wordpress 함수 $wpdb-> get_results()를 사용합니다.
https://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
다음과 같이 되어 있습니다.
일치하는 행을 찾을 수 없거나 데이터베이스 오류가 있는 경우 반환값은 빈 배열이 됩니다.
그러면 쿼리가 실패했는지, 빈 상태인지 어떻게 알 수 있나요?
사용하다
$results=$wpdb->get_results($yoursql);
if (count($results)> 0){
//do here
}
하지만 쿼리가 실패했는지 알고 싶다면
$wpdb -> show_errors ();
$wpdb -> get_results ($wpdb -> prepare($sql));
$wpdb -> print_error ();
여기 파티에는 좀 늦었지만 같은 걸 찾고 있어요.나는 을 훑어보았다.wp-db.php
버전 4.4.2의 코드.
1422번 줄, 메서드 내부flush()
리셋하는 코드가 있습니다.last_error
속성:
$this->last_error = '';
이것.flush()
메서드는 에서 호출됩니다.query()
1693행의 메서드:
$this->flush();
그get_results()
메서드 호출query()
회선 2322:
if ( $query ) {
$this->query( $query );
} else {
return null;
}
이것으로 우리는 매번 어느 정도 확신 할 수 있다.get_results()
(또는get_row()
너무 많이)가 호출됩니다.query()
그리고.flush()
둘 다 호출되기 때문에last_error
쿼리가 실행되기 전에 빈 문자열로 설정됩니다.
따라서 쿼리가 실행된다고 가정하면(실행하지 않으면),null
반환됩니다(예를 들어 쿼리가 비어 있는 경우).last_error
어떤 이유로 쿼리가 실패했을 경우 오류 메시지가 표시됩니다.
부터last_error
이flush()
ed/display는 매번 이전에 실행된 쿼리의 마지막 오류가 아니라 마지막으로 실행된 쿼리의 오류만 포함해야 합니다.이 점을 염두에 두고 안심하고 사용할 수 있습니다.last_error
쿼리에 문제가 있는지 여부를 확인합니다.
$results = $wpdb->get_results($sql);
if (is_null($results) || !empty($wpdb->last_error)) {
// Query was empty or a database error occurred
} else {
// Query succeeded. $results could be an empty array here
}
내 생각에는 가장 직관적인 것은 아니지만, 충분해 보인다.
개인적으로, 저는 제 수업 내용을wpdb
나 자신을 위해서.이건 내 거야getResults()
방법.
public function getResults($query, $bindings = [])
{
// Prepare the statement (My prepare method inspects $query and just returns it if there's no bindings, otherwise it uses $wpdb->prepare()
$prepared = $this->prepare($query, $bindings);
// Execute the statement
$rows = $this->db->get_results($prepared, ARRAY_A);
// If an array was returned and no errors occurred, return the result set
if (is_array($rows) && empty($this->db->last_error)) {
return $rows;
}
// On failure, return false
return false;
}
이게 도움이 됐으면 좋겠다.
Wpdb->wordpress의 get_results 함수는 성공하면 결과를 반환합니다.그렇지 않으면 null을 반환합니다.쿼리가 실패하면 여러 가지 이유가 있을 수 있습니다.빈 결과를 반환하는 get_results() 디버깅에 대한 자세한 내용은 여기를 참조하십시오.
다음과 같은 기능을 사용할 수 있지만wpdb->show_error()
sql 쿼리를 실행한 후 마지막 오류가 무엇이었는지 확인합니다. 때때로 이 오류는 빈 상태로 반환되고 사용을 시도합니다.wpdb->last_query
생성되는 최종 쿼리를 확인합니다.
언급URL : https://stackoverflow.com/questions/29274268/wordpress-get-results-how-to-know-if-failed-or-empty
'sourcecode' 카테고리의 다른 글
WordPress REST API에서 원시 HTML 출력 가져오기 (0) | 2023.02.07 |
---|---|
JObject를 사전으로 변환합니다. 가능합니까? (0) | 2023.02.07 |
필요한 위치에 있지 않고 콘텐츠 상단에 쇼트코드가 표시됨 (0) | 2023.02.07 |
WordPress에서 CloudConvert API 사용 (0) | 2023.02.07 |
라인 항목당 WooCommerce 쿠폰 코드 (0) | 2023.02.07 |