(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::exec — Execute an SQL statement and return the number of affected rows
PDO::exec() executes an SQL statement in a single function call, returning the number of rows affected by the statement.
PDO::exec() does not return results from a SELECT statement. For a SELECT statement that you only need to issue once during your program, consider issuing PDO::query(). For a statement that you need to issue multiple times, prepare a PDOStatement object with PDO::prepare() and issue the statement with PDOStatement::execute().
statement
The SQL statement to prepare and execute.
Data inside the query should be properly escaped.
PDO::exec() returns the number of rows that were modified
or deleted by the SQL statement you issued. If no rows were affected,
PDO::exec() returns 0
.
Ця функція може
повертати як логічне false
, так і не логічне значення, яке прирівнюється до
false
. Докладніше про це описано в розділі Логічні типи даних. Для перевірки
значення, яке повертає ця функція, використовується оператор ===.
The following example incorrectly relies on the return value of PDO::exec(), wherein a statement that affected 0 rows results in a call to die():
<?php
$db->exec() or die(print_r($db->errorInfo(), true)); // incorrect
?>
Видає помилку рівня E_WARNING
, якщо атрибут
PDO::ATTR_ERRMODE
дорівнює
PDO::ERRMODE_WARNING
.
Викидає PDOException, якщо атрибут
PDO::ATTR_ERRMODE
дорівнює
PDO::ERRMODE_EXCEPTION
.
Приклад #1 Issuing a DELETE statement
Count the number of rows deleted by a DELETE statement with no WHERE clause.
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
/* Delete all rows from the FRUIT table */
$count = $dbh->exec("DELETE FROM fruit");
/* Return number of rows that were deleted */
print "Deleted $count rows.\n";
?>
Поданий вище приклад виведе:
Deleted 1 rows.