Выполняет запрос

# odbc_execute

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_execute — Выполняет запрос

### Описание

function odbc_execute(Odbc\Result `$statement`, array `$params` = []): bool

Функция выполняет запрос, который подготовили функцией 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.

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

- odbc_prepare() - Подготавливает запрос к выполнению

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open