Problème variable PHP mal interprétée par sql

Résolu
the Red -  
 the Red -
Bonjour,

J'ai un problème avec mes variables PHP.
J'effectue l'opération suivante sur un objet de type Domaine

$all = Domaine::findBySite($site);

La requête findBySite est la suivante :

public function findBySite($id){
$db = Connexion::getConnexion();
$query = "Select * from domaine where `id_site` = `$id`;";
$res = mysql_query($query);
$all = null;
if(!$res){
echo "erreur : ".mysql_errno()." : ".mysql_error();
}else{
$d = new domaine();
$d->setattr('id_bureau',$row[0]);
$d->setattr('id_site',$row[1]);
$d->setattr('id_service',$row[2]);
$all[] = $d;
}
return $all;
}

J'ai tout le temps droit à l'erreur "erreur : 1054 : Unknown column '1' in 'where clause'". Logiquement ça veut dire qu'il prend mon $id comme un nom de colonne et non une valeur. J'ai pourtant bien des int en clé primaires partout, et id_site en est une. J'avais déjà eu ce problème avec un varchar, mais là je ne vois vraiment pas, c'est juste un INT !!
A voir également:

3 réponses

doctormad Messages postés 430 Date d'inscription   Statut Membre Dernière intervention   99
 
Salut,

As tu fais les tests usuels ? Je ne crois pas ;)

echo $query; et tu l'execute directement dans phpmyadmin et tu verras ton erreur.

Pour les nombres entiers pas besoin de mettre entre quotes idem pour les noms de champs.
0
the Red
 
Salut !

justement, les tests usuels, j'en ai fait et refait !

le test de $query me marque exactement ce que je veux, la requête dans phpmyadmin me donne le bon résultat ...

J'ai testé avec toutes les sortes de quotes possibles ... C'est bizarre, il va falloir que je regarde si je retourne les bons résultats dons mes différentes fonctions, mais sinon je vois vraiment pas d'où ça vient :(
0
the Red
 
Bon, comme on dit souvent, l'erreur est humaine ...

J'avais tout simplement oublié de mettre un while ( ...) pour récupérer toutes les valeurs, donc pas étonnant qu'il était pas d'accord avec ce que je retournais :S
Ca, c'est fait, reste plus qu'à attendre la prochaine erreur bidon !
0