PHP Unconference Europe 2015

ibase_execute

(PHP 5)

ibase_executeEsegue una query preparata in precedenza

Descrizione

resource ibase_execute ( resource $query [, int $bind_args ] )

Esegue una query preparata da ibase_prepare(). Se la query genera un errore, la funzione restituisce FALSE. Se invece ha successo ed si ha un set di risultati (tipo un query SELECT), la funzione ne restituisce l'identificativo. Se la query ha successo e non vi sono risultati, restituisce TRUE

Ciò è molto più efficace che usare ibase_query() se state ripetendo uno stesso tipo di query molte volte cambiando solo alcuni parametri.

Example #1 Esempio di uso di ibase_execute()

<?php

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

    
$updates = array(
        
=> 'Eric',
        
=> 'Filip',
        
=> 'Larry'
    
);

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

    while (list(
$baz$bar) = each($updates)) {
        
ibase_execute($query$bar$baz);
    }
?>

Nota:

In PHP 5.0.0 e successivi, questa funzione restituisce il numero di righe toccate dalla query (se >0 ed è applicabile al tipo di query). Una query che ha successo, ma che non modifica nessuna righa (ad esempio un UPDATE su record che non esistono) restituirà TRUE

Vedere anche ibase_query().

add a note add a note

User Contributed Notes 2 notes

up
0
caveman
11 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