Page 1 sur 1
requete preparee
Posté : 30 juil. 2013, 09:12
par pollux
Bonjour,
J'ai aussi un problème avec un requête préparée. voici le code :
$bdd = new PDO('mysql:host=localhost;dbname=externus','root','');
}
catch(Exception $e)
{
die('Erreur : ' .$e->getMessage());
}
$req=$bdd->prepare('SELECT nom_cabinet FROM identite WHERE pseudo = ?');
$req->execute(array($_COOKIE['pseudo']));
while ($donnees = $req->fetch())
{
echo $donnees['nom_cabinet'];
}
$req->closeCursor();
il ne se passe rien. il y a rien dans $données
pourtant sur une autre page cela marche très bien.
Si quelqu'un pouvait m'aider, j'y suis depuis 6 heure du matin j en peux plus...
merci d avance
Re: requete preparee
Posté : 30 juil. 2013, 09:19
par Lyssorus
Bonjour,
Je ne sais pas si cela peut t'aider mais moi j'ai ça qui fontionne :
mysql_connect("localhost","user","");
mysql_select_db("test");
$sql = 'SELECT Valeurs FROM mots WHERE ID = 2';
$mot2 = mysql_query($sql);
$row2 = mysql_fetch_row($mot2);
mysql_close();
On ne sait jamais

Re: requete preparee
Posté : 30 juil. 2013, 09:33
par pollux
chuis trop nul, je comprends rien à ton truc.
Ca marche si je fais pas de requete préparée. je comprends pas.
Re: requete preparee
Posté : 30 juil. 2013, 11:19
par pollux
J'ai modifié
le cookie s'affiche bien
echo $donnees['nom_cabinet']; ne donne rien et je n'ai pas de message d'erreur
echo $identite['nom_cabinet']; il me dit que la variable identite n'est pas définie
si une ame charitable pouvait m'aider svp
try
{
bdd = new PDO('mysql:host=localhost;dbname=externus','root','');
}
catch(Exception $e)
{
die('Erreur : ' .$e->getMessage());
}
echo $_COOKIE['pseudo'];
$req = $bdd->prepare('SELECT nom_cabinet FROM identite WHERE pseudo= ? ');
$req->execute(array($_COOKIE['pseudo'])) or die(print_r($req->errorInfo()));
while ($donnees = $req->fetch())
{
echo $donnees['nom_cabinet'];
$identite['nom_cabinet'] = $donnees['nom_cabinet'];
}
$req->closeCursor();
echo $identite['nom_cabinet'];
Re: requete preparee
Posté : 30 juil. 2013, 11:42
par moogli
salut,
met le code dasn le try histoire de chopper les éventuelles exceptions.
le die c'est un peu brutal

(à la limite lève une exception pour faire un truc un poil plus propre).
utilise
bindvalue et un paramètre nommé pour y voir plus clair.
tu as quoi dans $_COOKIE['pseudo'] ?
au passage cela sens la faille de sécurité en permettant de se connecter avec le cookie récupéré ? (pourquoi ne pas utiliser la valeur en session ?).
@+
Re: requete preparee
Posté : 30 juil. 2013, 11:58
par pollux
y a mon prenom dans le cookie enfin du texte quoi. Je pense que c est ca le probleme mais je le fais par ailleurs et je n'ai pas de problème.
Je vais essayer avec bindvalue.
Oui je vais faire avec session mais c est encore trop compliqué pour moi.
merci de ta réponse
Re: requete preparee
Posté : 30 juil. 2013, 15:00
par pollux
try
{
$bdd = new PDO('mysql:host=localhost;dbname=externus','root','');
}
catch(Exception $e)
{
die('Erreur : ' .$e->getMessage());
}
echo $_COOKIE['pseudo'];
$test = $_COOKIE['pseudo'];
$req = $bdd->prepare('SELECT nom_cabinet FROM identite WHERE pseudo= ? ');
$req->bindvalue($test, PDO::PARAM_STR);
$req->execute();
while ($donnees = $req->fetch())
{
echo $donnees['nom_cabinet'];
$identite['nom_cabinet'] = $donnees['nom_cabinet'];
}
$req->closeCursor();
echo $identite['nom_cabinet'];
voila j ai essayé avec bindvalue d'après l'exemple mais pas mieux, j ai cette erreur la en plus
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\extern-us3\compte.php on line 37
J'ai cherché partout, tous les cours et je comprends pas. je vois une corde, elle me parait bien. adieu communauté php sniff
Re: requete preparee
Posté : 30 juil. 2013, 15:02
par pollux
pfff la corde a cassé, y a rien qui marche aujourd'hui
Re: requete preparee
Posté : 30 juil. 2013, 16:45
par moogli
donne nous le create table de la table et un exemple de donnée, se sera plus simple.
le dernier message indique que tous les paramètres ne sont pas lié, utilise un paramètre nommé (plus lisible

)
@+
Re: requete preparee
Posté : 30 juil. 2013, 17:40
par pollux
Je suis désolé je suis vraiment novice. J'arrive pas à comprendre ce que tu veux dire par paramètre nommé. Mais je sens que ca va etre trop compliqué pour m'expliquer ca dans un post.
Je sais pas non plus faire le create table. Mais quand je ne passe pas par une requete prepare, que je mets "david" apres where tout fonctionne tres bien.
Je suis sur que david est dans le cookie. C'est ce qu'il affiche juste avant que j'ouvre la base.
Je fais la meme manip sur la page avec un include mais au lieu du $_COOKIE j ai mis un $_POST. ca fonctionne.
Bon je crois que je vais retourner a ma comptabilité. chacun son métier...
Re: requete preparee
Posté : 30 juil. 2013, 18:22
par pollux
ahhhhhhhhhhhhh j ai trouvé^^^^^^^
il y avait un espace dans mon COOKIE^^^
je débouche le champagne
Re: [RESOLU] requete preparee
Posté : 30 juil. 2013, 18:55
par moogli
utilise la clef primaire de la table pour palier ce problème
une fonction utilise pour debuger : [urlz=
http://www.php.net/var_dump]var_dump[/url]().
@+
Re: [RESOLU] requete preparee
Posté : 30 juil. 2013, 20:25
par pollux
merci de l info^^