International PHP Conference 2015

ibase_execute

(PHP 5)

ibase_executeAusführen einer vorbereiteten Abfrage

Beschreibung

resource ibase_execute ( resource $query [, mixed $bind_arg [, mixed $... ]] )

Führt eine zuvor per ibase_prepare() vorbereitete Abfrage aus.

Dies ist effizienter als der Gebrauch von ibase_query(), sofern sie mehrere ähnliche Abfragen durchführen wollen, bei denen sich immer nur einige Parameter ändern.

Parameter-Liste

query

Eine per ibase_prepare() vorbereite InterBase-Abfrage.

bind_arg

...

Rückgabewerte

Erzeugt die Abfrage einen Fehler, wird FALSE zurückgegeben. Ist sie erfolgreich und es gibt eine (möglicherweise leere) Ergebnismenge (so wie bei einer SELECT Abfrage), wird eine Ergebniskennung zurückgegeben. War die Abfrage erfolgreich und es gibt keine Ergebnisse, wird TRUE zurückgegeben.

Hinweis:

Diese Funktion gibt die Anzahl der Zeilen zurück, die von der Abfrage betroffen waren (falls größer als 0 und für den Anweisungstyp zutreffend). Eine Abfrage, die erfolgreich war, aber keine Zeilen betraf (z.B. ein UPDATE eines nicht existierenden Datensatzes), gibt TRUE zurück.

Beispiele

Beispiel #1 ibase_execute() Beispiel

<?php

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

$updates = array(
    
=> 'Erik',
    
=> 'Philipp',
    
=> 'Laurenz'
);

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

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

?>

Siehe auch

  • ibase_query() - Führt eine Abfrage auf einer InterBase Datenbank aus

add a note add a note

User Contributed Notes 2 notes

up
0
caveman
12 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);
}
up
0
mclap at ulstu dot ru
12 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;
}
To Top