ingres_set_environment
MaxDB
Ingres 関数
PHP Manual

# ingres_unbuffered_query

(バージョン情報なし。おそらく SVN 版にしか存在しないでしょう)

ingres_unbuffered_query — 未バッファ SQL クエリを Ingres に送信する

### 説明

mixed ingres_unbuffered_query ( resource `$link` , string `$query` [, array `$params` [, string `$types` ]] )

ingres_unbuffered_query() は、指定したクエリを Ingres サーバーに送信します。

クエリは、現在開いているトランザクションの一部となります。 開いているトランザクションがない場合は ingres_unbuffered_query() が新しいトランザクションを開きます。 トランザクションを閉じるには、 ingres_commit() をコールして変更をデータベースにコミットするか ingres_rollback() で変更をキャンセルします。 スクリプトが終了すると、開いているトランザクションはすべて ( ingres_rollback() をコールして) ロールバックされます。 新しいトランザクションを開く前に ingres_autocommit() をコールすると、 SQL を実行するたびにその場で自動的にコミットするようになります。 Ingres は、未バッファの文を一度にひとつしかアクティブにできません。 この拡張モジュールは、アクティブな未バッファの文をすべて閉じてから SQL を実行します。さらに、フェッチを始める前に ingres_result_seek() で行の位置を移動することはできません。

> 注意: 関連する設定項目

> 実行時設定での ingres.describe および ingres.utf8 の説明も参照ください。

### パラメータ

`link`

  接続リンク ID。

`query`

  Ingres のドキュメント (Ingres SQL reference guide を参照ください) に書かれた正しい形式の SQL クエリ。 ingres_unbuffered_query() を使って実行できない SQL 文の一覧は、 ingres_query() の query パラメータを参照ください。

  クエリ内のデータは、適切にエスケープ しておかなければなりません。

`params`

  このクエリで使うパラメータの値の配列。

`types`

  パラメータに渡した値の型を表す文字列。型コードの一覧は ingres_query() の types パラメータを参照ください。

### 返り値

ingres_unbuffered_query() は、行を取得した場合にクエリ結果 ID を返します。行がない場合、たとえば INSERT や UPDATE あるいは DELETE 文を実行した場合は `FALSE` を返します。 エラーが発生したかどうかを知るには ingres_errno()、 ingres_error() あるいは ingres_errsqlstate() を使用します。

### 例

例1 シンプルな未バッファ select 文の発行

`<?php
$link = ingres_connect("demodb");
$result = ingres_unbuffered_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
echo $row[1];
echo $row[2];
}
?>`

例2 ingres_unbuffered_query() へのクエリパラメータのパース

`<?php
$link = ingres_connect("demodb");
$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_unbuffered_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
echo $row[1];
echo $row[2];
}
?>`

例3 BLOB 型のパラメータの挿入

`<?php
$link = ingres_connect("demodb");
//Open a photo
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);
//Prepare parameters
$params[] = $blob_data;
$params[] = 1201;
//Define parameter types
$param_types = "Bi";
$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_unbuffered_query($link, $query , $params, $param_types);
if (ingres_errno())
{
echo ingres_errno() . "-" . ingres_error() . "\n";
}
?>`

### 参考

- ingres_query() - Ingres に SQL クエリを送信する
- ingres_fetch_array() - 1 行分の結果を配列に取得する
- ingres_fetch_assoc() - 1 行分の結果を連想配列に取得する
- ingres_fetch_object() - 1 行分の結果をオブジェクトとして取得する
- ingres_fetch_row() - 1 行分の結果を数値添字配列として取得する
- ingres_commit() - トランザクションをコミットする
- ingres_rollback() - トランザクションをロールバックする
- ingres_autocommit() - autocommit をオンまたはオフに切替える
- ingres_set_environment() - 環境を設定して出力オプションを制御する
- ingres_errno() - 直近に発生した ingres エラー番号を取得する
- ingres_error() - 直近に発生したエラーのエラーメッセージを取得する

ingres_set_environment
MaxDB
Ingres 関数
PHP Manual