Eseguire query multiple in PHP e PDO
Supponiamo di dover eseguire due query diverse consecutivamente; a esempio due update del genere:
UPDATE persone SET abilitato = 0;
UPDATE persone SET abilitato = 1 WHERE id = 3;
Come vedete sono due istruzioni diverse, quindi non parliamo della stessa istruzione ripertuta con valori diversi.
Generalmente farei una Stored Procedure, ma nel caso specifico non posso in quano il mio provider non lo permette.
Come faccio a fare queste operazione in PHP usando PDO, senza usare due funzioni diverse?
Ecco qua:
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "9211", array(
PDO::ATTR_EMULATE_PREPARES, 1
));
$cmd = "
UPDATE persone SET abilitato = 0;
UPDATE persone SET abilitato = 1 WHERE id = ?;
";
$stmt = $pdo->prepare($cmd);
$stmt->execute(array(2));
Considerate che l'opzione ATTR_EMULATE_PREPARES è già di default a uno; l'ho messa solo per farvi vedere che è fondamentale che sia attiva.
E con questo possiamo chiudere l'anno!
Speriamo che il 2021 sia migliore, perchè personalmente non ne posso più....
Enjoy!
php pdo sql attr_emulate_prepares
Commentami!