Problème avec un UPDATE

Résolu
nestor94 Messages postés 74 Statut Membre -  
jordane45 Messages postés 30426 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

2 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  2. nestor94 Messages postés 74 Statut Membre
     
    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
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      donc c'est résolu ?
      Merci de marquer la discussion en tant que telle dans ce cas.
      0