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);
}
ibase_execute
(PHP 4, PHP 5)
ibase_execute — Wykonuje wcześniej przygotowane zapytanie
Opis
Wykonuje zapytanie przygotowane za pomocą ibase_prepare().
Funkcja jest o wiele bardziej efektywna niż ibase_query(), jeżeli wiele razy jest powtarzany taki sam rodzaj zapytania i zmieniane są tylko wartości niektórych parametrów.
Parametry
-
zapytanie -
Zapytanie SQL przygotowane za pomocą ibase_prepare().
-
dowiązywany_argument_1 -
-
... -
Zwracane wartości
Jeśli zapytanie powoduje błąd, zwraca FALSE. Jeśli zapytanie zostanie
pomyślnie wykonane a jego rezultatem będzie (być może pusty) zbiór wynikowy
(uzyskany za pomocą SELECT), zwraca identyfikator_wyniku. Jeśli zapytanie
zostanie pomyślnie wykonane a nie powstanie zbiór wynikowy, zwraca TRUE.
Informacja:
W PHP 5.0.0 i nowszych wersjach ta funkcja zwraca liczbę wierszy przetworzonych przez ostatnie zapytanie (jeżeli jest > 0 i użyto odpowiedniej instrukcji SQL). W przypadku zapytania wykonanego prawidłowo, ale nie przetwarzającego żadnego wiersza (np. UPDATE z warunkiem nie pasującym do żadnego rekordu) funkcja zwraca
TRUE.
Przykłady
Przykład #1 Przykład ibase_execute()
<?php
$dbh = ibase_connect($host, $username, $password, 'ISO8859_2');
$aktualizacje = array(
1 => 'Gościsława',
5 => 'Drogomysł',
7 => 'Sjęgniewa'
);
$sql = ibase_prepare($dbh, "UPDATE NAZWA_TABELI SET IMIE = ? WHERE ID = ?");
foreach ($aktualizacje as $id => $imie) {
ibase_execute($sql, $imie, $id);
}
?>
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;
}
