我把它从数据库中取出来,然后通过 AJAX (wordpress)发送出去。一切都很正常,除了我没有从数据库中得到第一行。我在网上读到,数组可能也有类似的问题。有人能解释一下并帮我修复它,这样所有的行都能显示出来吗?
编码:
$sql = $wpdb->prepare( "SELECT * FROM users" );
$count = 0;
$user_object = array();
foreach( $wpdb->get_results( $sql ) as $key => $row ) {
$user_id = $row->user_ID;
$user_name = $row->user_name;
$user_object[$count]= array(
"user_ID"=>$user_id,
"user_name"=>$user_name,
);
$count++;
}
return wp_send_json( $user_object );
2条答案
按热度按时间lpwwtiir1#
你根本不需要循环你的结果,你的代码可以进一步简化。
prepare()
。get_results()
和ARRAY_A
已经为您完成了这一任务。编码:
请参阅:https://developer.wordpress.org/reference/classes/wpdb/get_results/
当你想把PHP变量添加到你的SQL中时,使用预准备语句是合适的。例如:WordPress prepared statement with IN() condition
44u64gxh2#
WordPress的数据库表总是使用前缀,所以你必须包括前缀使用
$wpdb->prefix.'users'
或者如果你试图获得WordPress的核心用户,那么你可以使用$wpdb->users
来获得带前缀的表名。参考:https://developer.wordpress.org/reference/classes/wpdb/。
您可以使用
ARRAY_A
作为get_results()
的第二个输出参数,这样您就不必遍历结果。参考:https://developer.wordpress.org/reference/classes/wpdb/get_results/。
编码:
或者有另一种方法来让用户在WordPress中使用
get_users()
。参考:https://developer.wordpress.org/reference/functions/get_users/