ibase_execute

(PHP 5, PHP 7 < 7.4.0)

ibase_execute执行先前准备好的查询

描述

ibase_execute(resource $query, mixed ...$values): resource

执行由 ibase_prepare() 准备的查询。

如果您多次重复相同的查询,但只有某些参数发生变化,这比使用 ibase_query() 更有效。

参数

query

ibase_prepare() 准备的 InterBase 查询。

values

返回值

如果查询引发错误,则返回 false。如果成功并且存在(可能是空的)结果集(例如使用 SELECT 查询),则返回结果标识符。如果查询成功但没有结果,则返回 true

注意:

此函数返回查询受影响的行数(如果 > 0 且适用于语句类型)。成功的查询,但没有影响任何行(例如更新不存在的记录)将返回 true

示例

示例 #1 ibase_execute() 示例

<?php

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

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

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

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

?>

参见

添加注释

用户贡献的注释 2 个注释

mclap at ulstu dot ru
21 年前
对于 ibase_execute 中的可变参数列表,您可以使用以下函数

对于 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;
}

对于任何版本的 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;
}
caveman
21 年前
ibase_execute 仅返回资源 ID 而不是实际结果,您需要使用 ibase_fetch_row 或 ibase_fetch_object 来检索实际结果。

在 anthony 给出的上面示例中
它应该像这样

$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);
}
To Top