ingres_set_environment
MaxDB
Ingres 関数
PHP Manual

# ingres_unbuffered_query

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

ingres_unbuffered_query — Send an unbuffered SQL query to Ingres

### 説明

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

ingres_unbuffered_query() sends the given `query` to the Ingres server.

The query becomes part of the currently open transaction. If there is no open transaction, ingres_unbuffered_query() opens a new transaction. To close the transaction, you can call either ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediately committed. Ingres allows only a single unbuffered statement to be active at any one time. The extension will close any active unbuffered statements before executing any SQL. In addition you cannot use ingres_result_seek() to position the row before fetching.

> 注意: Related Configurations
> See also the ingres.describe and ingres.utf8 directives in Runtime Configuration.

### パラメータ

`link`

  The connection link identifier

`query`

  A valid SQL query (see the Ingres SQL reference guide) in the Ingres documentation. See the query parameter in ingres_query() for a list of SQL statements that cannot be executed via ingres_unbuffered_query().

  Data inside the query should be properly escaped.

`params`

  An array of parameter values to be used with the query

`types`

  A string containing a sequence of types for the parameter values passed. See the types parameter in ingres_query() for the list of type codes.

### 返り値

ingres_unbuffered_query() returns a query result identifier when there are rows to fetch; else it returns `FALSE` when there are no rows, as is the case of an INSERT, UPDATE, or DELETE statement. To see if an error occurred, use ingres_errno(), ingres_error(), or ingres_errsqlstate().

### 例

例1 Issue a simple un-buffered 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 Passing query parameters to 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 Inserting a BLOB with parameter types

`<?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() - Fetch a row of result into an associative array
- ingres_fetch_object() - 1 行分の結果をオブジェクトとして取得する
- ingres_fetch_row() - 1 行分の結果を数値添字配列として取得する
- ingres_commit() - トランザクションをコミットする
- ingres_rollback() - トランザクションをロールバックする
- ingres_autocommit() - autocommit をオンまたはオフに切替える
- ingres_set_environment() - Set environment features controlling output options
- ingres_errno() - 直近に発生した ingres エラー番号を取得する
- ingres_error() - 直近に発生したエラーのエラーメッセージを取得する

ingres_set_environment
MaxDB
Ingres 関数
PHP Manual