(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_execute — Выполняет запрос
Функция выполняет запрос, который подготовили функцией odbc_prepare().
statementОбъект ODBC с результатом из функции odbc_prepare().
params
Заполнители в подготовленном запросе по порядку заменятся параметрами, которые передали
в аргументе params. Элементы этого массива преобразуются
в строки при вызове функции.
Параметры в одинарных кавычках в аргументе params
функция воспринимает как название файла для считывания и отправки
на сервер базы данных в качестве данных для заполнителя.
Для сохранения строки, которая начинается и заканчивается самими одинарными кавычками, потребуется обернуть параметр пробелами или другими символами, которые отличаются от одинарных кавычек, что предотвратит восприятие параметра как название файла. Строку сохраняют через другой механизм, например отправляют прямой запрос функцией odbc_exec(), если невозможно обернуть параметр другими символами.
Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
| Версия | Описание |
|---|---|
| 8.4.0 | Функция теперь возвращает объект с результатом ODBC-запроса Odbc\Result; раньше возвращалось значение с типом resource. |
| 8.0.0 |
Параметр flags удалили.
|
Пример #1 Пример выполнения запроса функциями odbc_execute() и odbc_prepare()
В следующем примере переменной $success присвоится значение true,
только если каждый из трёх параметров в списке параметров для выполнения хранимой процедуры myproc
относится ко входному in-параметру, — передаётся в процедуру по значению:
<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>Для вызова хранимой процедуры с inout-параметром, который передаётся по ссылке, или с out-параметром, который возвращается из процедуры по значению, лучше отправить запрос через родной модуль базы данных наподобие модуля oci8 для СУБД Oracle.