ibase_execute()
(PHP 5, PHP 7)
Execute a previously prepared query
说明
ibase_execute(resource $query[,mixed$...
]): resource
Execute a query prepared by ibase_prepare().
This is a lot more effective than using ibase_query() if you are repeating a same kind of query several times with only some parameters changing.
参数
- $query
An InterBase query prepared by ibase_prepare().
- ...
返回值
If the query raises an error, returns FALSE
. If it is successful and there is a(possibly empty)result set(such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE
.
Note:This function returns the number of rows affected by the query(if > 0 and applicable to the statement type). A query that succeeded, but did not affect any rows(e.g. an UPDATE of a non-existent record)will return
TRUE
.
范例
Example #1 ibase_execute() example
<?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_query()
Execute a query on an InterBase database
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; }
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); }