PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::exec Выполняет SQL-запрос и возвращает количество затронутых строк

Описание

public PDO::exec ( string $statement ) : int

PDO::exec() запускает SQL-запрос на выполнение и возвращает количество строк, задействованых в ходе его выполнения.

PDO::exec() не возвращает результат выборки оператором SELECT. Если вам нужно выбрать данные этим оператором единожды в ходе выполнения программы, воспользуйтесь методом PDO::query(). Если требуется запускать один и тот же запрос на выборку множество раз, лучше создать подготовленный запрос PDOStatement методом PDO::prepare(), а затем запускать его методом PDOStatement::execute() столько раз, сколько потребуется.

Список параметров

statement

SQL-выражение, которое необходимо подготовить и запустить.

Данные внутри запроса должны быть правильно экранированы.

Возвращаемые значения

PDO::exec() возвращает количество строк, которые были модифицированы или удалены в ходе его выполнения. Если таких строк нет, PDO::exec() вернет 0.

Внимание

Эта функция может возвращать как логическое значение 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");

/* Получим количество удаленных записей */
print("Удалено $count строк.\n");
?>

Результат выполнения данного примера:

Удалено 1 строк.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDO::query() - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение