0

挿入された ID を mysql INSERT クエリから返そうとしています。関数を実行するたびに、結果として 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 に答える