(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::exec —
Exécute une requête SQL et retourne le nombre de lignes affectées
Description
public
PDO::exec(string
$statement
): int|false
PDO::exec() ne retourne pas de résultat pour une requête
SELECT. Pour une requête SELECT dont vous auriez besoin une seule fois dans
le programme, utilisez plutôt la fonction PDO::query().
Pour une requête dont vous auriez besoin plusieurs fois, préparez un objet
PDOStatement avec la fonction PDO::prepare() et exécutez
la requête avec la fonction PDOStatement::execute().
Liste de paramètres
-
statement
-
La requête à préparer et à exécuter.
Les données contenues dans la requête doivent être
échappées proprement.
Valeurs de retour
PDO::exec() retourne le nombre de lignes qui ont été modifiées
ou effacées par la requête SQL exécutée. Si aucune ligne n'est affectée,
la fonction PDO::exec() retournera 0
.
Avertissement
Cette fonction peut retourner false
, mais elle peut aussi retourner une valeur équivalent à false
.
Veuillez lire la section sur les booléens pour plus d'informations.
Utilisez l'opérateur ===
pour tester la valeur de retour exacte de cette fonction.
L'exemple suivant se fonde inexactement sur la valeur retournée par
PDO::exec(), où une requête qui n'affecte
aucune lignes revient à appeler die() :
<?php
$db->exec() or die(print_r($db->errorInfo(), true)); // incorrect
?>
Erreurs / Exceptions
Émet une erreur de niveau E_WARNING
si l'attribut PDO::ATTR_ERRMODE
est défini
à PDO::ERRMODE_WARNING
.
Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE
est défini
à PDO::ERRMODE_EXCEPTION
.
Exemples
Exemple #1 Exécution d'une requête DELETE
Compte le nombre de lignes effacées pour une requête DELETE avec
aucune clause WHERE.
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
/* Effacement de toutes les lignes de la table FRUIT */
$count = $dbh->exec("DELETE FROM fruit");
/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
print("Effacement de $count lignes.\n");
?>
L'exemple ci-dessus va afficher :
Retourne le nombre de lignes effacées :
Effacement de 2 lignes.
Voir aussi
- PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
- PDO::query() - Prépare et Exécute une requête SQL sans marque substitutive
- PDOStatement::execute() - Exécute une requête préparée