©
本文档使用 PHP中文网手册 发布
(No version information available, might only be in Git)
ingres_unbuffered_query — Send an unbuffered SQL query to Ingres
$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.
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" ;
}
?>