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
:mrgreen: :mrgreen:

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^^