Запускает SQL запрос на выполнение и возвращает количество строк, задействованых в ходе его выполнения


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

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

Описание

public int PDO::exec ( string $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. 

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

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