我正在sql语句中使用下面的wpdb->prepare函数。我传入了几个变量,一些字段名和一些值。当我尝试使用%s作为字段名时,它会在其周围加上单引号。如何防止字段名周围出现单引号?sql语句将不会使用单引号执行?
$query = $wpdb->prepare("SELECT DISTINCT wp_geo.%s, wp_geo.$field2
FROM wp_geo
WHERE wp_geo.$field3=%s",$field1, $typevalue);
“county\\u short”字段名周围带单引号的输出:
SELECT DISTINCT wp_geo.\'county_short\', wp_geo.county_slug FROM wp_geo WHERE wp_geo.type=\'trailers\'
SO网友:Malav Vasita
您可以使用排除单引号包装的%1s。通过使用%1s,您将注意到字符串不会有单引号,您将根据需要直接获取值。
$query = $wpdb->prepare("
SELECT DISTINCT wp_geo.%1s, wp_geo.%1s
FROM wp_geo
WHERE wp_geo.%1s = %1s",
$field1,
$field2,
$field3,
$typevalue
);
Note: 这里,应遵循%1s的顺序以及查询后提供的变量。