• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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);
    }
    ?>
    

    参见

    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);
    }