CakeFest 2024: The Official CakePHP Conference

ibase_execute

(PHP 5, PHP 7 < 7.4.0)

ibase_executeВыполняет предварительно подготовленный запрос

Описание

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

Выполняет запрос, подготовленный с помощью ibase_prepare().

Это намного эффективнее, чем использование ibase_query(), если вы повторяете один и тот же тип запроса несколько раз, изменяя только некоторые параметры.

Список параметров

query

Запрос InterBase, подготовленный с помощью ibase_prepare().

values

Возвращаемые значения

Если запрос вызывает ошибку, возвращает false. Если запрос выполнен успешно, и есть (возможно пустой) набор результатов (как при запросе SELECT), возвращает идентификатор результата. Если запрос выполнен успешно и результатов не было, возвращается true.

Замечание:

Функция возвращает количество строк, затронутых запросом (если > 0 и применимо к типу оператора). Если запрос выполнен успешно, но не затронул ни одну строку (например, UPDATE несуществующей записи), вернёт 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);
}

?>

Смотрите также

  • ibase_query() - Выполняет запрос к базе данных InterBase

add a note

User Contributed Notes 2 notes

up
1
mclap at ulstu dot ru
21 years ago
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;
}
up
1
caveman
21 years ago
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);
}
To Top