Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2011, 18h10   #1
Invité régulier
 
Inscription : avril 2011
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 60
Points : 9
Points : 9
Par défaut requête préparé insert

Bonjour a tous,
j'ais un retour d'erreur que je ne comprend pas très bien.
j'aurais besoin de vous pour éclairer ma lanterne.

Message d'erreur :

Warning: PDO::prepare() [function.PDO-prepare]: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. in "ICI chemin du fichier" on line 5

Fatal error: Call to a member function bindValue() on a non-object in "ICI chemin du fichier" on line 6


code correspondants a l'erreur :

Code :
1
2
3
4
5
 
	$cat = $connexion->prepare("SELECT nom FROM bra_cat WHERE name=:name ");
	$cats -> bindValue("name", $_GET['cat']);
	$cat -> execute();
	$retour_cat = $cat -> fetch();
le nOoB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 18h14   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
montre tout ton code
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 18h17   #3
Invité régulier
 
Inscription : avril 2011
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 60
Points : 9
Points : 9
Le reste du code c'est du html donc peut d'importance je pense et modification c'est un SELECT et non un INSERT.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
 
	$cat = $connexion->prepare("SELECT nom FROM bra_cat WHERE name=:name ");
	$cats -> bindValue("name", $_GET['cat']);
	$cat -> execute();
	$retour_cat = $cat -> fetch();
 
echo '<div id="haut_page">
		<div id="titre_page">Vidéo de la '.$retour_cat['nom'].'</div>
		</div>';
?>
le nOoB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 19h02   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
j'en doute ou fais tu ta connexion ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/08/2011, 19h06   #5
Invité régulier
 
Inscription : avril 2011
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 60
Points : 9
Points : 9
dans un fichier config qui fonctionne très bien habituellement je pense que sa vient de la config du serveur.
les requêtes normal fonctionne mais les requêtes préparées rien a faire.
le nOoB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 19h23   #6
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Après ta connexion et avant tes requêtes rajoute un

Code :
$connexion->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/08/2011, 19h30   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
ouai mais doit y'avoir un endroit il a la pas fermer un statement, y'a un closeCursor a mettre quelque part
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/08/2011, 19h52   #8
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Je suppose qu'il est sous Windows avec un php non a jour d’où ma proposition simple

Un autre palliatif consiste a mettre du fetchAll même pour 1 seul résultat mais c'est plus chiant pour avoir un code propre sur un serveur plus propre pour de la production.

Après si le serveur n'est pas en cause effectivement il faut chercher les erreurs de code
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/08/2011, 19h58   #9
Invité régulier
 
Inscription : avril 2011
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 60
Points : 9
Points : 9
voila le contenue de mon setAttribute avec l'ajout de PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true il me sort une nouvelle erreur
concernant le setAttribute

erreur setAttribute :
Warning: PDO::setAttribute() expects exactly 2 parameters, 4 given in

Code :
1
2
 
$connexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true );
et pour le bindValue :

Fatal error: Call to a member function bindValue() on a non-object in
le nOoB est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 29/08/2011, 20h07   #10
Invité régulier
 
Inscription : avril 2011
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 60
Points : 9
Points : 9
plus d'info concernant le serveur .

_PHP Version 5.1.6
_Linux ZDPP001.local 2.6.18-238.19.1.el5 #1 SMP Fri Jul 15 07:32:29 EDT 2011 i686
_PDO Driver for MySQL, client library version 5.0.77
le nOoB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 20h08   #11
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Ha bah oui

Laisse ton ancien setAttribute et rajoute une ligne en plus en dessous
Tu ne peut paramétrer qu'un attribut a la fois.

Code :
1
2
3
 
$connexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$connexion->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
Edit : pour les versions effectivement il faudrait que tu passe en php 5.2.6 + pour corriger pas mal de soucis avec PDO.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/08/2011, 20h13   #12
Invité régulier
 
Inscription : avril 2011
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 60
Points : 9
Points : 9
merci a vous toujours l'erreur sur la requête mais je vais lui mettre a jour son serveur et sa devrait aller mieux
le nOoB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h47.


 
 
 
 
Partenaires

Hébergement Web