Je reçois cet avertissement lorsque j'essaie d'exécuter une requête sur une base de données:
Attention: Argument manquant 2 pour wpdb :: prepare ()
La requête incriminée est:
$result = $wpdb->get_var(
$wpdb->prepare(
"SELECT DISTINCT meta_value FROM $metatable
WHERE meta_key LIKE '%matchme%'
AND meta_value IS NOT NULL
AND meta_value <> ''"
)
);
Est-il possible de supprimer l'erreur en modifiant la requête ci-dessus?
Supprimer l'appel à $wpdb->prepare()
:
$result = $wpdb->get_var(
"SELECT DISTINCT meta_value FROM $metatable
WHERE meta_key LIKE '%matchme%'
AND meta_value IS NOT NULL
AND meta_value <> ''"
);
Dans ce cas, la fonction $wpdb->prepare()
estne fait rien. Il n'y a pas de variables contenant des valeurs inconnues, il n'est donc pas nécessaire de les désinfecter.
Si vous avez avez des variables qui ont besoin d'être nettoyées, vous pouvez ajouter un deuxième argument à la fonction:
$result = $wpdb->get_var(
$wpdb->prepare(
"SELECT DISTINCT meta_value FROM %s
WHERE meta_key LIKE '%matchme%'
AND meta_value IS NOT NULL
AND meta_value <> ''",
$metatable )
);
Liens pertinents: