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

# odbc_execute

(PHP 4, PHP 5, PHP 7)

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

### 説明

odbc_execute ( resource `$result_id` [, array `$parameters_array` ] ) : bool

odbc_prepare() で準備された命令を実行します。

### パラメータ

`result_id`

  odbc_prepare() で取得した結果 ID リソース。

`parameters_array`

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

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

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

### 返り値

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

### 例

例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 パラメータを用いるストアドプロシージャをコールしたい場合は、 各データベース専用の拡張モジュール (たとえば MS SQL Server なら mssql、 Oracle なら oci8) を使うようにしましょう。

### 変更履歴

バージョン | 説明
--- | ---
4.2.0 | `parameters_array` でのファイルの読み込み機能が セーフモード や open-basedir の制限に対応するようになりました。

### 参考

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