Php/docs/function.ingres-unbuffered-query

来自菜鸟教程
跳转至:导航、​搜索

ingres_unbuffered_query

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

ingres_unbuffered_querySend an unbuffered SQL query to Ingres


说明

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

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.

Note:

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().


范例

Example #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];}?>

Example #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];}?>

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

参见