db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepareПодготавливает SQL-запрос к выполнению

Описание

db2_prepare(resource$connection, string$statement, array$options = []): resource|false

db2_prepare() создаёт подготовленный SQL-запрос, который может включать 0 или более маркеров параметров (символов ?), представляющих входные параметры, параметры вывода или входные параметры и параметры вывода. Вы можете передать параметры подготовленному запросу, используя db2_bind_param() или только для входных значений в виде массива, переданного в db2_execute().

Использование подготовленных запросов в вашем приложении даёт три основных преимущества:

  • Производительность: при использовании подготовленного запроса, сервер базы данных создаёт оптимизированный план доступа для извлечения данных с помощью этого запроса. Последующее выполнение подготовленного запроса с помощью db2_execute() позволяет операторам повторно использовать этот план доступа и позволяет избежать накладных расходов на динамическое создание нового плана доступа для каждого выполняемого вами запроса.

  • Безопасность: при использовании подготовленного запроса, вы можете включить маркеры параметров для входных значений. Когда вы выполняете подготовленный запрос с входными значениями для заполнителей, сервер базы данных проверяет каждое входное значение, чтобы убедиться, что тип соответствует определению столбца или определению параметра.

  • Расширенный функционал: Маркеры параметров не только позволяют передавать входные значения в подготовленные SQL-запросы, они также позволяют извлекать параметры OUT и INOUT из хранимых процедур с помощью db2_bind_param().

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

connection

Допустимая переменная ресурса подключения к базе данных, возвращаемая функцией db2_connect() или db2_pconnect().

statement

SQL-запрос, необязательно содержащий один или несколько маркеров параметров.

options

Ассоциативный массив, содержащий параметры запроса. Параметры можно использовать для запроса прокручиваемого курсора на серверах баз данных, поддерживающих эту функцию.

Описание допустимых опций запроса смотрите в разделе db2_set_option().

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

Возвращает ресурс оператора, если SQL-запрос был успешно проанализирован и подготовлен сервером базы данных. Возвращает false, если сервер базы данных вернул ошибку. Вы можете определить, какая ошибка была возвращена, вызвав db2_stmt_error() или db2_stmt_errormsg().

Примеры

Пример #1 Подготовка и выполнение SQL-запроса с маркерами параметров

В следующем примере подготавливается запрос INSERT, который принимает четыре маркера параметров, а затем выполняет итерацию по массиву массивов, содержащих входные значения, которые необходимо передать в db2_execute().

<?php
$animals
= array(
array(
0, 'cat', 'Pook', 3.2),
array(
1, 'dog', 'Peaches', 12.3),
array(
2, 'horse', 'Smarty', 350.0),
);

$insert = 'INSERT INTO animals (id, breed, name, weight)
VALUES (?, ?, ?, ?)'
;
$stmt = db2_prepare($conn, $insert);
if (
$stmt) {
foreach (
$animals as $animal) {
$result = db2_execute($stmt, $animal);
}
}
?>

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

  • db2_bind_param() - Связывает переменную PHP с параметром SQL-выражения
  • db2_execute() - Выполняет подготовленный SQL-запрос
  • db2_stmt_error() - Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором
  • db2_stmt_errormsg() - Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения
To Top