(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::exec — Запускает SQL запрос на выполнение и возвращает количество строк, задействованных в ходе его выполнения
$statement
)PDO::exec() запускает SQL запрос на выполнение и возвращает количество строк, задействованых в ходе его выполнения.
PDO::exec() не возвращает результат выборки оператором SELECT. Если вам нужно выбрать данные этим оператором единожды в ходе выполнения программы, пользуйтесь методом PDO::query(). Если требуется запускать один и тот же запрос на выборку множество раз, лучше создать подготовленный запрос PDOStatement методом PDO::prepare(), а затем запускать его методом PDOStatement::execute() столько раз, сколько потребуется.
statement
SQL выражение, которое необходимо подготовить и запустить.
Данные внутри запроса должны быть правильно экранированы.
PDO::exec() возвращает количество строк, которые были модифицированы или удалены в ходе его выполнения. Если таких строк нет, PDO::exec() вернет 0.
Эта функция может возвращать как boolean FALSE
, так и не-boolean значение, которое приводится к FALSE
. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
В этом примере разработчик допустил ошибку, полагаясь на возвращаемый результат PDO::exec(). В результате, если запрос отработал без ошибок, но не модифицировал ни одной строки, работа скрипта будет завершена функцией die():
<?php
$db->exec() or die(print_r($db->errorInfo(), true));
?>
Пример #1 Выполнение DELETE запроса
Получение количества удаленных записей DELETE запросом без WHERE условий.
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
/* Удаляем все записи из таблицы FRUIT */
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");
/* Получим количество удаленных записей */
print("Удалено $count строк.\n");
?>
Результат выполнения данного примера:
Deleted 1 rows.