ingres_query

Ingres に SQL クエリを送信する

説明

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

ingres_query は、指定した query を Ingres サーバーに送信します。

クエリは、現在オープンされているトランザクションの一部となります。 オープンされているトランザクションがない場合、 ingres_query は新規のトランザクションをオープンします。 トランザクションをクローズするには、データベースへの変更をコミットする場合に ingres_commit を、 これらの変更をキャンセルする場合に ingres_rollback のどちらかを使用することが可能です。 スクリプト終了時に、全てのオープンされたトランザクションは (ingres_rollback をコールすることにより) ロールバックされます。新規トランザクションをオープンする前に ingres_autocommit を使用することも可能です。 この場合、各 SQL クエリは直ちにコミットされます。

注意: 関連する設定項目

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

パラメータ

link

接続リンク ID。

query

有効な SQL クエリ (Ingres ドキュメントにある Ingres SQL リファレンスガイド を参照ください)。

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

次の型の SQL クエリは、この関数で送信できません。

  • close (ingres_close を参照)
  • commit (ingres_commit を参照)
  • connect (ingres_connect を参照)
  • disconnect (ingres_close を参照)
  • get dbevent
  • prepare to commit
  • rollback (ingres_rollback を参照)
  • savepoint
  • set autocommit (ingres_autocommit を参照)
  • カーソルに関係するクエリはサポートされていません

params

クエリで使用するパラメータの値の配列。

types

渡されたパラメータの値の型を含む文字列。 ingres.describe が有効な場合は このパラメータは無視され、サーバーが期待している型をドライバが自動的に取得します。

型コード Ingres の型
a BOOLEAN
b BYTE
B LONG BYTE/BLOB
c CHAR
d DATE/ANSIDATE/TIMESTAMP/TIME
f FLOAT
i INTEGER
L LONG TEXT
m MONEY
M LONG NVARCHAR
n NCHAR
N NVARCHAR
t TEXT
v VARCHAR
V LONG VARCHAR

返り値

ingres_query は、 成功した場合にクエリ結果 ID、それ以外の場合に false を返します。 エラーが発生したかどうかを知るには ingres_errnoingres_error あるいは ingres_errsqlstate を使用します。

例1 単純な select の送信

<?php
$link 
ingres_connect("demodb");

$result ingres_query($link"select * from user_profile");
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

例2 ingres_query へクエリパラメータを渡す

<?php
$link 
ingres_connect("demodb");

$params[] = "Emma";
$query "select * from user_profile where up_first = ?";
$result ingres_query($link$query$params);
while (
$row ingres_fetch_row($result)) {
    echo 
$row[1];
    echo 
$row[2];
}
?>

例3 パラメータの型を指定した BLOB の挿入

<?php
$link 
ingres_connect("demodb");

// 写真をオープンします
$fh fopen("photo.jpg","r");
$blob_data stream_get_contents($fh);
fclose($fh);

// パラメータを準備します
$params[] = $blob_data;
$params[] = 1201;

// パラメータの型を定義します
$param_types "Bi";

$query "update user_profile set up_image = ? where up_id = ?";
$result ingres_query($link$query $params$param_types);

if (
ingres_errno())
{
    echo 
ingres_errno() . "-" ingres_error() . "\n";
}

ingres_commit($link);

ingres_close($link);
?>

参考

  • ingres_unbuffered_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