PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-05-2013 10:34:36

jerome76
Membre
Inscription : 22-05-2012
Messages : 7

Requête PDO et IN(...)

Bonjour,

Je souhaite effectuer une requête préparée de ce type :

UPDATE messagerie SET visible=visible-2 WHERE id_msg IN(4,3,1)

Je suis arrivé à ce genre de code, cela me supprime que la première valeur.

$del = str_replace( '|', ',', $_GET['del']); // pdo[':del'] = 1,2,3,4,5
$sql    = "UPDATE messagerie SET visible=visible-2 WHERE id_msg IN(:del)";
$sth    = $dbh->prepare($sql);
$sth->bindValue(':del', $del, PDO::PARAM_STR);
$sth->execute();

//ou

$pdo[':del'] = str_replace( '|', ',', $_GET['del']); // pdo[':del'] = 1,2,3,4,5
$sql    = "UPDATE messagerie SET visible=visible-2 WHERE id_msg IN(:del)";
$sth    = $dbh->prepare($sql);
$sth->execute($pdo);
unset( $pdo[':del'] );

 

Merci pour votre aide

Dernière modification par jerome76 (28-05-2013 10:35:11)

Hors ligne

#2 28-05-2013 10:38:33

jerome76
Membre
Inscription : 22-05-2012
Messages : 7

Re : Requête PDO et IN(...)

Bon ok je pense avoir trouvé :

http://fmaz.developpez.com/tutoriels/ph … endre-pdo/

Article IV b

Hors ligne

#3 28-05-2013 11:02:08

jerome76
Membre
Inscription : 22-05-2012
Messages : 7

Re : Requête PDO et IN(...)

Donc voila :

$arr= explode('|', $_GET['del']);

    foreach($arr as $elem)
        $arrPH[] = '?';

    $strPH = implode(',', $arrPH); //Contient: ?,?,?,?,?

    $sql    = "UPDATE messagerie SET visible=visible-2 WHERE id_msg IN($strPH)";

    $sth = $dbh->prepare($sql);

    //Associer les valeurs aux place holders
    for($i=0;$i<count($arr);$i++)
      $sth->bindValue($i+1, $arr[$i], PDO::PARAM_STR);

    $sth->execute();
 

Merci

Hors ligne

Pied de page des forums