The WPDB Class 有很多方法,这些方法会改变返回的内容。
使用WPDB::get_results()
返回一个对象数组,这些对象的属性最终是它期望返回的属性。在这种情况下,最好将子查询别名化。例如,如果我想检查用户ID 1是否存在,我可以说:
$results = $wpdb->get_results( "SELECT EXISTS( SELECT ID FROM {$wpdb->users} WHERE ID = 1 ) AS \'exists\'" );
if( ! empty( $results ) && $results[0]->exists ) {
/* ... */
}
更好的解决方案是,如果您只想退回一件东西,您可以使用
WPDB::get_var()
$exists = $wpdb->get_var( $wpdb->prepare( "
SELECT EXISTS ( [some query] WHERE user_id = %d )
", $user_id ) );
if( $exists ) {
/* ... */
}
或者,如果您想按ID输入用户名:
$username = $wpdb->get_var( $wpdb->prepare( "
SELECT user_login FROM {$wpdb->users} WHERE ID = %d
", $user_id ) );
if( ! empty( $username ) ) {
printf( \'User %d user name is: %s\', $user_id, $username );
}
也就是说,您最好阅读文档并查看可用的方法,以找出哪种方法最适合您的用户:
https://codex.wordpress.org/Class_Reference/wpdb