Problème avec un UPDATE

Résolu
nestor94 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
J'ai une requete UPDATE qui ne fonctionne pas.

  $sql = "SELECT contenant FROM membres WHERE id = :id";
  $pdostat = $bdd->prepare($sql);
  $pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
  $pdostat->execute();
  $resultat = $pdostat->fetch();
if (!empty($resultat )) { 
$contenant = $resultat['contenant'];
	    $pdostat = $bdd->prepare('UPDATE membres SET contenant = REPLACE (contenant, "/objets/rien.gif") WHERE id =:id ');
        $pdostat->bindValue(':contenant', $contenant, PDO::PARAM_STR);
        $pdostat->bindValue(':id', $id, PDO::PARAM_INT);
        $pdostat->execute();
		}


PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp64\www\abandon_contenant.php on line 19
Call Stack

Si je vire le bindValue de "contenant" j'ai une autre erreur:

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ') WHERE id =1' à la ligne 1 in C:\wamp64\www\abandon_contenant.php on line 19
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Tu fais un REPLACE .... sauf que cette fonction attend 3 paramètres....

De plus, est ce que tu as une variable php du nom de $contenant ?
Si oui, quel "replace" veux tu faire ?
Pourquoi ne fais tu pas le replace en PHP AVANT de lui passer la variable dans le bind ?

0
nestor94 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention  
 
En analysant bien mes besoins, j'ai fait au plus simple. Un update simple écrase l'ancienne valeur du champ "contenant" ...

$pdostat = $bdd->prepare('UPDATE membres SET contenant = "/objets/rien.gif"  WHERE id =:id');
        $pdostat->bindValue(':id', $id, PDO::PARAM_INT);
        $pdostat->execute();
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
donc c'est résolu ?
Merci de marquer la discussion en tant que telle dans ce cas.
0