Passer variable dans un SELECT

Atrix
Invité n'ayant pas de compte PHPfrance

23 janv. 2013, 17:49

Bonjour,

j'aimerai passer une variable pour le SELECT d'une requete comme ceci :

Code : Tout sélectionner

$infoToGet = "field_name, field_value" ; $critereLastClassPerso = $wpdb->get_results("SELECT '".$infoToGet."' FROM kel_cf7dbplugin_submits);
Mais ça ne fonctionne pas. Est-il possible de mettre une variable comme ceci ?

Merci.

ViPHP
AB
ViPHP | 5818 Messages

23 janv. 2013, 19:36

Code : Tout sélectionner

"SELECT ".$infoToGet." FROM kel_cf7dbplugin_submits"

atrix
Invité n'ayant pas de compte PHPfrance

23 janv. 2013, 19:41

Merci ça marche.

Je sais jamais en PHP quand il faut mettre ".." ou '".'" ou ". ou je sais pas trop quoi ;)

ViPHP
AB
ViPHP | 5818 Messages

24 janv. 2013, 17:28

C'est assez simple, les champs mentionnés ne doivent pas être entre quotes (ni double quotes), par contre les variables par exemple dans les clauses WHERE, AND... doivent être entre quotes.
Pour voir le résultat le plus simple est d'écrire sa requête séparément puis ensuite de l'exécuter. Cela permet de faire un echo pour voir comment la requête est écrite.
Par exemple :
$infoToGet = "field_name, field_value";

$query = "SELECT ".$infoToGet." FROM kel_cf7dbplugin_submits";

// pour vérif débuggage
echo $query;

// exécution de la requête
$critereLastClassPerso = $wpdb->get_results($query);

ViPHP
xTG
ViPHP | 7331 Messages

24 janv. 2013, 17:35

par contre les variables par exemple dans les clauses WHERE, AND... doivent être entre quotes.
Sous réserve de format non numérique, il me semble que si MySQL accepte des quotes autour d'un entier ce n'est pas le cas de tout SGBD.