Ingres 関数
PHP Manual

ingres_query

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_queryIngres に 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 クエリは、この関数で送信できません。

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_errno()ingres_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 関数
PHP Manual