PHP マニュアル
前のページ |  | 次のページ

# ifx_query

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_query -- Informix クエリを送信する

## 説明

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

返り値: 成功時に有効な Informix 結果 ID、エラー時に `FALSE`

リソース "result_id" は、クエリ結果を取得するために 他の関数により使用されます。 ifx_affected_rows() 関数による取得を行うために "affected_rows" をセットします。

ifx_query() は、サーバ上の指定したリンク ID が指す現在アクティブなデータベースにクエリを送信します。

接続 conn_id において queryを実行します。"select 型" のクエリ では、カーソルが定義され、オープンされます。オプションの cursor_type パラメータにより、そのカーソルを "スクロール" または "ホールド" カーソルとすることができます。 このオプションはビットマスクであり、IFX_SCROLL, IFX_HOLD, または 両方とも指定することができます。select でないクエリは、"直ちに実行" されます。IFX_SCROLL および IFX_HOLD は定数シンボルのため 引用符で括る必要はありません。このパラメータを省略した場合、 カーソルは通常のシーケンシャルカーソルになります。

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

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

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 の値を得ることが可能です (以下を参照)。

例 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() も参照ください。

前のページ | ホーム | 次のページ
ifx_prepare | 上に戻る | ifx_textasvarchar