文字

ibase_execute

(PHP 5)

ibase_executeExecute a previously prepared query

说明

resource ibase_execute ( resource $query [, mixed $bind_arg [, mixed $... ]] )

Execute a query prepared by ibase_prepare() .

This is a lot more effective than using ibase_query() if you are repeating a same kind of query several times with only some parameters changing.

参数

query

An InterBase query prepared by ibase_prepare() .

bind_arg

...

返回值

If the query raises an error, returns FALSE . If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE .

Note:

This function returns the number of rows affected by the query (if > 0 and applicable to the statement type). A query that succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent record) will return TRUE .

范例

Example #1 ibase_execute() example

<?php

$dbh 
ibase_connect ( $host $username $password );

$updates  = array(
    
=>  'Eric' ,
    
=>  'Filip' ,
    
=>  'Larry'
);

$query  ibase_prepare ( $dbh "UPDATE FOO SET BAR = ? WHERE BAZ = ?" );

foreach (
$updates  as  $baz  =>  $bar ) {
    
ibase_execute ( $query $bar $baz );
}

?>

参见

  • ibase_query() - Execute a query on an InterBase database

用户评论:

[#1] caveman [2003-01-24 10:18:18]

ibase_execute only return resource id not the actual result, you need to use ibase_fetch_row or ibase_fetch_object to retrieve actual result.

On the example above given by anthony 
it should be like these

 $dbh = ibase_connect ( $host, $username, $password ) ; 
 $stmt = 'SELECT * FROM "EMPLOYEE" WHERE "SALARY" = ? AND "DEPT_CD" = ? ;' ; 
 $prep = ibase_prepare ( $dbh, $stmt ) ; 

 $salary = Array ( "10000", "25000", "33000", "48000" ) ; 
 $dept_cd = 'SALES' ; 

 foreach ( $salary as $val ) { 
   $res = ibase_execute ($prep, $val, $dept_cd);
   $taxForm[$val] = ibase_fetch_row ($res);
}

[#2] mclap at ulstu dot ru [2002-09-07 18:54:02]

For variable argument list in ibase_execute you can use folowing functions:

For PHP >= 4.0.4:

function db_execute($stmt,$data)
{
if(!is_array($data))
return ibase_execute($stmt,$data);
array_unshift($data,$stmt);
$rc=call_user_func_array('ibase_execute',$data);
return $rc;
}

For any version of PHP:
function db_execute($stmt,$data)
{
if(!is_array($data))
return ibase_execute($stmt,$data);

$params = array();
while( list($k,$v) = each($data) )
$params[$k] = '$data['.$k.']';
eval('$rc=ibase_execute($stmt,'.join(',',$params).');');

return $rc;
}

上一篇: 下一篇: