0

我正在尝试从 mysql INSERT 查询返回插入的 id。每次我运行该函数时,我都会得到 0 作为结果。有人可以解释一下我可以在什么时候检索该值,因为虽然下面的脚本执行我无法收回插入的 id。大概做了什么傻事吧。

<?php
public function execSQL($sql, $params, $close){
    $mysqli = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
    $stmt = $mysqli->prepare($sql) or die ("Failed to prepared the statement!");
    call_user_func_array(array($stmt, 'bind_param'), $this->refValues($params));

    $this->insert_id($this->connection);
    $stmt->execute();
    if($close){
      $result = $mysqli->affected_rows;
    } else {
      $meta = $stmt->result_metadata();
      while ( $field = $meta->fetch_field() ) {
        $parameters[] = &$row[$field->name];
      } 
      call_user_func_array(array($stmt, 'bind_result'), $this->refValues($parameters));
      while ( $stmt->fetch() ) { 
        $x = array(); 
        foreach( $row as $key => $val ) { 
          $x[$key] = $val; 
        } 
        $results[] = $x; 
      }
     $result = $results;
    }
    $stmt->close();
    $mysqli->close();

    return  $result;
}
?>
4

1 回答 1

0

$mysqli->insert_id执行插入查询后检查。

于 2011-03-31T19:40:49.087 回答