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_queryquery パラメータを参照ください。

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

params

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

types

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

返り値

ingres_unbuffered_query は、行を取得した場合にクエリ結果 ID を返します。行がない場合、たとえば INSERT や UPDATE あるいは DELETE 文を実行した場合は false を返します。 エラーが発生したかどうかを知るには ingres_errnoingres_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_fetch_array
  • ingres_fetch_assoc
  • ingres_fetch_object
  • ingres_fetch_row
  • ingres_commit
  • ingres_rollback
  • ingres_autocommit
  • ingres_set_environment
  • ingres_errno
  • ingres_error