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]] )
指定したリンク 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); ?>
|
|