ingres_unbuffered_query

Send an unbuffered SQL query to Ingres

Description

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.

Note: Related Configurations

See also the ingres.describe and ingres.utf8 directives in Runtime Configuration.

Parameters

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.

Return Values

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.

Examples

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

See Also

  • 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