web-dev-qa-db-fra.com

wpdb-> prepare, supprime les guillemets simples pour% s dans une instruction SQL

J'utilise la fonction wpdb-> prepare ci-dessous dans une instruction SQL. Je transmets à plusieurs variables des noms de champs et des valeurs. Lorsque j'essaie d'utiliser% s pour le nom du champ, il y met des guillemets simples. Comment puis-je empêcher les guillemets simples autour du nom du champ? L'instruction SQL ne s'exécutera pas avec les guillemets simples?

$query = $wpdb->prepare("SELECT DISTINCT wp_geo.%s, wp_geo.$field2 FROM wp_geo WHERE wp_geo.$field3=%s",$field1, $typevalue);

Sortie avec guillemets simples autour du nom de champ 'county_short':

SELECT DISTINCT wp_geo.'county_short', wp_geo.county_slug FROM wp_geo WHERE wp_geo.type='trailers'

3
user1609391

Vous ne pouvez pas supprimer les guillemets dans $ wpdb. Exécutez mysqli_real_escape_string() in votre script sur ces variables.

0
fuxia

Vous ne pouvez pas utiliser prepare () sur les noms de colonnes, mais uniquement sur les valeurs.

1
webaware