プリペアドステートメントを実行する

# 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_prepare() で取得した ODBC 結果オブジェクト

`params`

  プリペアドステートメントの中のプレースホルダが、 `params` 内のパラメータで順に置き換えられます。 この関数をコールした際に、配列の要素は文字列に変換されます。

  `params` の中でシングルクォートで括られたデータがある場合、 それはファイル名と解釈されます。そのファイルの内容が、 該当するプレースホルダのデータとしてデータベースサーバーに送信されます。

  シングルクォートで括られたデータを純粋に文字列として使用したい場合は、 空白などの別の文字を前後に付加する必要があります。 それにより、パラメータがファイル名とみなされることがなくなります (もしこのオプションが不要なら、別の仕組み、たとえば odbc_exec() で直接クエリを実行するなどを使用する必要があります)。

### 戻り値

成功した場合に `true` を、失敗した場合に `false` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.4.0 | この関数は Odbc\Result クラスのインスタンスを返すようになりました。 これより前のバージョンでは、resource を返していました。
8.0.0 | The unused `flags` parameter was removed.

### 例

例1 odbc_execute() および odbc_prepare() の例

次のコードは、myproc の 3 つのパラメータがすべて IN パラメータである場合にのみ $success が `true` となります。

    <?php
    $a = 1;
    $b = 2;
    $c = 3;
    $stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
    $success = odbc_execute($stmt, array($a, $b, $c));
    ?>

INOUT や OUT パラメータを用いるストアドプロシージャをコールしたい場合は、 各データベース専用の拡張モジュール (たとえば Oracle なら oci8) を使うようにしましょう。

### 参考

- odbc_prepare() - 実行用に文を準備する

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