# PDO::exec

(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() exécute une requête SQL dans un appel d'une seule fonction, retourne le nombre de lignes affectées par la requête.

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 "Effacement de $count lignes.\n";
?>`

L'exemple ci-dessus va afficher :

    Effacement de 1 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