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 — Exécute une requête iBase préparée
Description
Exécute une requête iBase préparée.
ibase_execute() est beaucoup plus efficace que ibase_query(), si vous effectuez plusieurs fois la même requête en ne changeant que quelques paramètres.
Liste de paramètres
- query
-
Une requête InterBase, préparée avec la fonction ibase_prepare().
- bind_arg
-
- ...
-
Valeurs de retour
Si la requête émet une erreur, la fonction retournera FALSE. Si la requête réussie, et qu'il y a un jeu de résultats (pouvant être vide), la fonction retourne un identifiant de résultats. Si la requête réussie et qu'il n'y a pas de résultat, la fonction retourne TRUE.
Note: Depuis la version 5.0.0 de PHP, ibase_execute() retourne le nombre d'enregistrements affectés par la requête (si supérieur à 0). Pour une requête qui réussie mais qui ne renvoie aucun enregistrement (e.g un UPDATE sur un enregistrement inexistant), ibase_execute() retournera TRUE.
Exemples
Exemple #1 Exemple avec 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_execute
24-Jan-2003 08:18
08-Sep-2002 04:54
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;
}
