ibase_execute

(PHP 5, PHP 7)

ibase_executeWykonuje wcześniej przygotowane zapytanie

Opis

ibase_execute ( resource $zapytanie [, mixed $dowiązywany_argument_1 [, mixed $... ]] ) : resource

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:

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(
    
=> 'Gościsława',
    
=> 'Drogomysł',
    
=> 'Sjęgniewa'
);

$sql ibase_prepare($dbh"UPDATE NAZWA_TABELI SET IMIE = ? WHERE ID = ?");

foreach (
$aktualizacje as $id => $imie) {
    
ibase_execute($sql$imie$id);
}

?>

Zobacz też:

  • ibase_query() - Wykonuje zapytanie w bazie danych Firebird/Interbase

add a note 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
0
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