Problème lorsque vous essayez d'utiliser EN() dans wpdb
j'ai ceci:
$villes = '"paris","fes","rabat"';
$sql = 'SELECT distinct telecopie FROM `comptage_fax` WHERE `ville` IN(%s)';
$query = $wpdb->prepare($sql, $villes);
quand je fais un echo $query;
j'obtiens:
SELECT distinct telecopie FROM `comptage_fax` WHERE `ville` IN('\"CHAPELLE VIVIERS \",\"LE MANS \",\"QUEND\"')
le probleme que j'ai est que $wpdb
ajouter '
dans IN('...')
quelqu'un peut aider, merci
Vous devez vous connecter pour publier un commentaire.
Essayer ce code (FIXE):
implode()
array_fill()
call_user_func_array()
array_merge()
$villes
avec 30 villes au lieu de 3 et il faudra encore travailler.ville
IN(".implode(', ', array_fill(0, count($villes), '%s')).") ETtable_name.name
= '%s'$prepare
:$wpdb->prepare($sql,...$ville);
WordPress a déjà une fonction pour cet effet, voir esc_sql(). Voici la définition de cette fonction:
Vous pouvez l'utiliser comme ceci:
FONCTION:
UTILISATION:
RÉSULTAT:
Peut ou ne peut pas être plus efficace, mais il est réutilisable.
La
prepare
fonction prend également unarray
comme second paramètre.Vous pouvez essayer de convertir
$villes
comme ceci:Actuel
Changer de
Maintenant, essayer de passer
$villes
pour le préparer func et voir si cela fonctionne. Espérons que cela aide.