从外观上看,这只是一个语法错误。您正在使用" 打开字符串,然后\' 关闭它。使用此选项:
$which_column = \'phone\';
$data_check = $wpdb->get_var("SELECT " . $which_column . " FROM wp_shopping_preferences WHERE wp_user_id = \'$id\'");
有趣的事实:使用双引号时(
"), 您可以直接在字符串中插入变量,而无需关闭它~
$which_column = \'phone\';
$data_check = $wpdb->get_var("SELECT $which_column FROM wp_shopping_preferences WHERE wp_user_id = \'$id\'");
EDIT
我注意到你
$id 在正在添加的查询的末尾**如果这是用户提交的值
you must use [$wpdb->准备`]
1 确保正确消毒。见下文:
$which_column = \'phone\';
$data_check = $wpdb->get_var(
$wpdb->prepare(
"SELECT $which_column FROM wp_shopping_preferences WHERE wp_user_id = %d",
$id
)
);
额外的换行符是不必要的,但只是为了证明发生了什么。我更换了
$id 具有
%d, 将进行类型转换
$id 作为数值。退房
$wpdb->prepare 查看更多选项。