ifx_prepare
ifx_textasvarchar
Informix 関数
PHP Manual

# ifx_query

(PHP 4, PHP <=5.2.0)

ifx_query — Informix クエリを送信する

### 説明

resource ifx_query ( string `$query` , resource `$link_identifier` [, int `$cursor_type` [, mixed `$blobidarray` ]] )

指定したリンク ID が指す現在アクティブなデータベースに クエリ `query` を送信します。

"select 型" のクエリの場合はカーソルを宣言してオープンします。 select 以外のクエリは、直接実行されます。

どちらのタイプのクエリにおいても、(予測または実際の数として) 作用された行の数は ifx_affected_rows() により 取得可能です。

TEXT (または BYTE) カラムの内容が許すならば、 "ifx_textasvarchar(1)" または "ifx_byteasvarchar(1)" を使用する ことも可能です。 これにより、TEXT (または BYTE) カラムは、select クエリの 通常の (しかし長い) VARCHAR カラムと同様に処理され、 BLOB ID で悩むこともなくなります。

ifx_textasvarchar(0) または ifx_byteasvarchar(0) (デフォルト値) の場合、select クエリは、BLOB ID (整数値) に属するものとして BLOB カラムを返します。 BLOB 関数により文字列またはファイルとして BLOB の値を得ることが 可能です (下記を参照ください)。

### パラメータ

`query`

  クエリ文字列。

`link_identifier`

  リンク ID。

`cursor_def`

  オプションのパラメータで、そのカーソルを "スクロール" または "ホールド" カーソルとすることができます。 このオプションはビットマスクであり、 `IFX_SCROLL`、 `IFX_HOLD` あるいは 両方とも指定することができます。

`blobidarray`

  もし、クエリにおいて BLOB (BYTE または TEXT) カラムがある場合、 対応する "BLOB ID" を有する `blobidarray` パラメータを追加することが可能です。この場合、クエリテキストの これらのカラムを "?" で置換することが必要です。

### 返り値

成功した場合に Informix 結果 ID、エラー時に `FALSE` を返します。

### 例

例1 "orders" テーブルの全行を HTML テーブルとして表示する

`<?php
ifx_textasvarchar(1); // BLOB 用に "text mode" を使用する
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
printf("Can't select orders : %s\n<br />%s<br />\n", ifx_error(), ifx_errormsg());
die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>`

例2 値を "catalog" テーブルに挿入する

`<?php
// バイトおよびテキストカラムに関する BLOB ID を作成する。
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");
// blob id を blobid 配列に保存
$blobidarray[] = $textid;
$blobidarray[] = $byteid;
// クエリを実行
$query = "insert into catalog (stock_num, manu_code, " .
"cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
/* ... エラー ... */
}
// 結果 id を解放
ifx_free_result($res_id);
?>`

### 参考

- ifx_connect() - Informix サーバへの接続をオープンする

ifx_prepare
ifx_textasvarchar
Informix 関数
PHP Manual