我正在为我的wordpress网站构建一个自定义插件。
我创建了一个名为"checkrank"的php文件,该文件从名为"cranking"的自定义表中获取数据
$uid = $GET['id'];
function checkExists($id){
global $wpdb;
$table_name = $wpdb->prefix . 'cranking';
$exists = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_name WHERE id = %d" ) );
$error = $wpdb->print_error();
if(count($exists) > 0){
echo 'Exists!';
} else {
echo 'Does not exist!';
}
return $error;
}
checkExists($uid);
该代码只是检查启动表是否有提供id的用户。
问题是,每当我运行这个php文件时,我都会收到以下错误:PHP致命错误:在非对象上调用成员函数get_row()
我哪里有错?我认为$wbdp没有启动。
您的$wpdb::prepare()
缺少参数,如果在查询中写入%d
,则需要添加一个参数$id
。
来源:http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks
$wpdb->prepare( "SELECT * FROM $table_name WHERE id = %d", $id )