PDO::exec -- Execută o instrucţiune SQL şi întoarce numărul de rânduri afectate
Descriere
int PDO::exec ( string statement )
PDO::exec() execută o interogare SQL prin apelarea unei singure funcţii, întoarce numărul de rânduri afectate de instrucţiune.
PDO::exec() nu întoarce rezultatele din instrucţiunea SELECT. Pentru o instrucţiune SELECT necesară doar o singură dată în program, se poate emite PDO::query(). Pentru o instrucţiune care va fi necesară de mai multe ori, se pregăteşte un obiect PDOStatement cu PDO::prepare() şi se emite instrucţiunea cu PDOStatement::execute().
Parametri
statement
Instrucţiunea SQL care va fi pregătită şi executată.
Valori întoarse
PDO::exec() întoarce numărul de rânduri care au fost modificate sau şterse de instrucţiunea SQL emisă. Dacă nu au fost afectate rânduri, PDO::exec() întoarce 0.
Atenţie
Această funcţie poate întoarce valoarea Booleană FALSE, dar poate întoarce şi o valoare non-Booleană care este evaluată ca FALSE, cum ar fi 0 sau "". Se foloseşte operatorul === pentru a testa valoarea întoarsă de această funcţie.
Următorul exemplu se bazează incorect pe valoarea întoarsă a PDO::exec(), unde o instrucţiune a afectat 0 rânduri la o apelare die():
<?php
$db->exec() or die($db->errorInfo());
?>
Exemplu. Emiterea unei instrucţiuni DELETE
Numără rândurile şterse de instrucţiunea DELETE fără clauza WHERE.
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
/* Sterge toate randurile din tabelul FRUIT */
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");
/* Intoarce numarul de randuri care au fost sterse */
print("Sters(e) $count rand(uri).\n");
?>
Exemplul de mai sus va afişa:
Sters(e) 1 rand(uri).