我有一个代码示例:
function custom_func(){
global $wpdb;
$wpdb->flush(); //tried with and without this line
$getTest = 'SELECT * FROM $wpdb->wp_users LIMIT 1';
$arrayReturned = $wpdb->get_results($wpdb->prepare($getTest));
}
从我所读到的,我认为$wpdb->wp_users意味着已经返回数据库名称和表名,如dbName.tableName;但是它只是返回一个空值。
我试过:
$getTest = 'SELECT * FROM $wpdb->wp_users LIMIT 1';
显示如下:
SELECT * FROM $wpdb->wp_users LIMIT 1
和
$getTest = 'SELECT * FROM '.$wpdb->wp_users.' LIMIT 1';
显示如下:
SELECT * FROM LIMIT 1
我不明白为什么这不起作用,因为这都是基于wordpress codex的文献,有什么想法吗?
不需要给表加上前缀。因为$wpdb->table
会为你做。此外,您需要使用双引号"
而不是单个'
,因为您在查询字符串中使用$wpdb
变量。
'SELECT * FROM $wpdb->wp_users LIMIT 1';
^---------------------^^^-------------^---
使用时不带表前缀,并加双引号"
。
"SELECT * FROM $wpdb->users LIMIT 1";
也不需要使用预处理语句,因为没有用户输入。
你的代码应该是这样的:
function custom_func() {
global $wpdb;
$getTest = "SELECT * FROM $wpdb->users LIMIT 1";
$arrayReturned = $wpdb->get_results($getTest);
var_dump($arrayReturned); // see results
}