WPDB prepare方法是您所追求的,因为这将准备好数据以传递给查询,并确保数据与其预期的类型匹配,同时在必要时处理报价。
修复代码可能是。。
$voucher = \'MK0186\';
$is_in_database = $wpdb->get_results( "SELECT * FROM my_codes_table WHERE code = \'$voucher\'" );
。。但你最好这样写。。
$voucher = \'MK0186\';
$is_in_database = $wpdb->get_results(
$wpdb->prepare( "
SELECT * FROM my_codes_table
WHERE code = %s",
$voucher
)
);
具有2个数值和一个字符串值的示例查询。
$num1 = 5;
$num2 = 10;
$string = \'Some String!!\';
$query = $wpdb->get_results(
$wpdb->prepare( "
SELECT * FROM sometable
WHERE column1 = %d
AND column2 = %d
AND column3 = %s
",
$num1, $num2, $string
)
);
简而言之。。。您的字符串值没有被引用,这就是问题所在。使用
$wpdb->prepare
方法,它会为您解决这个问题。