Erreur PHP requete sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur PHP requete sql

Re: Erreur PHP requete sql

par moogli » 27 mai 2011, 19:47

tu ne te trompe pas, pour le cas où il s'agit d'une chaine de caractère, certain sgbd moins sympa que mysql te râlerais dessus si tu passe un entier entre ' (erreur de type).

donc pour faire bien => is_numeric

ceci dit 3 messages pour dire la même chose ..............

@+

Re: Erreur PHP requete sql

par Ez3kiel » 27 mai 2011, 16:06

Idem que Moogli, si dans ta bdd référence est en type Integer, decimal etc, pas besoin de quote, mais interdiction de lettres et autres caractères.
Donc ça donnerait bien :
$sql = "SELECT * FROM photo_imprimante WHERE reference = ".$id;
Mais si il peut y avoir des lettres dans reference, alors passe la en char, varchar, ou comme ça te convient. Ce qui donnerait :
$sql = "SELECT * FROM photo_imprimante WHERE reference ='".$id. "'";
Si je ne me trompe pas ...

Re: Erreur PHP requete sql

par macgawel » 27 mai 2011, 15:26

Bonjour.

1. Merci d'utiliser les balises de code, c'est plus lisible...

2. Pour ton problème.
Neuf fois sur dix, ce message veut dire que ta requête est fausse. Du coup, le résultat de mysql_query est FALSE.
Et quand tu essaies de faire un fetch sur FALSE, forcément PHP râle...
Première chose à faire : afficher la requête, et la passer directement, par exemple dans phpMySQL.
Deuxième chose : les instructios mysql_* renvoient FALSE en cas d'erreur.
=> Dans ce cas, affiche rle message d'erreur.
Evidemment, c'ets juste le temps de débugger :mrgreen:
//requête SQL:
$sql = "SELECT * FROM photo_imprimante WHERE reference = ".$id;
echo "Requete : $sql";
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) or die ("erreur de requete :".mysql_error() );

//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>

<img width="130" height="130" src="<?php echo($result->photo) ;?>" /></a>



<?php
}//fin if
?>

Re: Erreur PHP requete sql

par moogli » 27 mai 2011, 15:24

salut,

une chaine de caractère DOIT être entourée de ', donc mysql ne comprend ce que tu lui demande avec 18f15 ;)

pour cela tu peut faire un test en php avec is_numeric et faire ta requête seulement si le test est bon ;)

je te conseil aussi la fonction mysql_real_escape_string pour protéger tes données.


@+

Erreur PHP requete sql

par macances2 » 27 mai 2011, 15:19

Bonjour à tous,

J'ai un petit souçit de codage pour un site quand je fait la requête suivante et que photo ne contient que des chiffres (ex : 1720 , 3130) la requête se passe bien, par contre si je mets une lettre j'ai ce message d'erreur (ex 1720c, HP28):

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP5.2.10\www\gestioncartouche\Demande_de_cartouche2.php on line 151

merci de votre aide


//requête SQL:
$sql = "SELECT * FROM photo_imprimante WHERE reference = ".$id;

//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;

//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>

<img width="130" height="130" src="<?php echo($result->photo) ;?>" /></a>



<?php
}//fin if
?>