Pourquoi ma requête préparée n'update-t'elle rien du tout ?

WRInaute occasionnel
Bonjour,

Navré de vous importuner durant votre week-end, mais je m'échine avec cette requête préparée dans laquelle je ne vois aucune erreur de syntaxe :

Code:
$req=$dbh->prepare('
UPDATE 
auteur
SET
nom=:nom, 
prenom=:prenom
WHERE 
id=:id_auteur');
$req->execute(array(
'nom' => $nom,
'prenom'=>$prenom,
'id_auteur'=>$id_auteur  ));

Si vous avez une idée, je vous remercie par avance de bien vouloir m'en faire part...



J'essaie ça mais ça ne change rien, à vrai dire :

Code:
$sql =
"UPDATE
auteur 
 SET
nom=?, 
 prenom=?
   WHERE 
id=?";
$stmt = $dbh->prepare($sql);

$stmt->bind_param($nom, $prenom,$id_auteur);
$stmt->execute();


Ce n'est peut-être pas une erreur de requête.

Alorsladaccord a dit:
Je n'ai jamais vu ça, quoi que j'écrive dans <?php ?>, rien en s'affiche. Et pas de message d'erreur. Alors que sur les autres pages, si j'enlève un ' ça déclenche une erreur, donc ça ne vient pas du serveur.


Alorsladaccord a dit:
Et là j'ai écrasé le fichier par un autre avec un copier coller et j'ai "enfin" un message d'erreur.

Pspad fait de drôles de choses des fois. Y'aurait-il des paramètres cachées qui définissent le bon fonctionnement d'un fichier php ?

Alorsladaccord a dit:
Et du coup, ma première requête fonctionne. Pfff....

Alorsladaccord a dit:
Et pourquoi pas la seconde ? J'ai une erreur Uncaught Error: Call to undefined method PDOStatement::bind_param() in

Alorsladaccord a dit:
Amis du monologue, bonjour.

Alorsladaccord a dit:
J'ai essayé comme ça dans le bind_param, mais ça n'est guère mieux :

$stmt->bind_param(":nom", ":prenom")


Alorsladaccord a dit:
Et maintenant, j'ai ça Uncaught Error: Cannot pass parameter 2 by reference

parce qu'à la place de bindParam, j'écrivais bind_param (on lit de ces trucs des fois sur internet...)

Alorsladaccord a dit:
Et maintenant j'ai ça :
PDOStatement::bindParam() expects at most 5 parameters, 13


Alorsladaccord a dit:
Pourquoi 5 paramètres et pas 13 ? C'est nouveau ça, on ne peut pas utiliser autant de paramètres qu'on veut avec les requêtes préparées ?



edit dd32 : fusion d'une dizaine de posts à la suite
 
WRInaute occasionnel
Salut Anonymus,

Non, j'ai pas la réponse pour bindparam() mais en effet mon script fonctionne autrement, donc je ne me souviens même plus de la question...

Merci pour tes deux conseils. Je crois que le premier est déjà mis en oeuvre (paramètre à changer une fois en production, c'est ça ?) quant au second il faut que j'y pense. Avant c'était mysql_error() si je me souviens, mais c'est l'antiquité ça...

Encore merci pour ta réponse :-)
 
WRInaute accro
Bonjour Alorsladaccord,

Si vous postez à la suite une dizaine de messages sans réponse, pouvez-vous "Editer" votre post initial ? (cf. bouton en haut à droite de vos posts) ? Cela permet d'éviter le flood sur le forum et l'impression de "monologue" dont vous faites mention.

Si malgré tout, les WRInautes ne répondent pas : essayez de reformuler votre besoin en éditant votre post d'origine.
Il est possible de faire remonter (up) la discussion qui n'aurait pas rencontré de réponse mais après un laps de temps "raisonnable" ou si votre besoin a évolué, par exemple : "ça fonctionne".



Bon courage pour votre développement.
 
Discussions similaires
Haut