Php/docs/function.ingres-unbuffered-query

提供:Dev Guides
< Php
移動先:案内検索

ingres_unbuffered_query

(No version information available, might only be in Git)

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


説明

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

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";}?>

参考