您不应该在SQL语句中直接放置变量,因为it is not safe
使用WPDB::prepare 您需要在SQL中放置无引号的占位符(如%s表示字符串或%d表示整数),然后在第一个参数(SQL语句)后按正确的顺序添加变量(以匹配占位符)。
以下是我上面链接的WordPress开发人员参考中的示例:
$wpdb->prepare( "SELECT * FROM `table` WHERE `column` = %s AND `field` = %d", \'foo\', 1337 );
$wpdb->prepare( "SELECT DATE_FORMAT(`field`, \'%%c\') FROM `table` WHERE `column` = %s", \'foo\' );
要修复代码,类似这样的操作应该可以:
$info = $wpdb->get_results($wpdb->prepare("SELECT post_id, address, phone, email FROM $wpdb->places_locator WHERE post_id = %d", $postid));