MySQL-为什么LAST_INSERT_ID()对我不起作用?

Ste*_*ven 1 php mysql

我有以下代码:

  public function createNewGuide($userID,$guideName)
  {
    $sql =" INSERT INTO myTable(name, updated) 
            VALUES ('$guideName', 'NOW()')";

    //Process query
    $this->query($sql); // This inserts the new row
    $this->query('LAST_INSERT_ID()'); // This throws an error

    return $this->query_result;
  }
Run Code Online (Sandbox Code Playgroud)

我的查询功能如下所示:

  private function query($sql) 
  {
      $this->query_result = mysql_query($sql, $this->conn)
        or die("Unable to query local database <b>". mysql_error()."</b><br>$sql");   
  } 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

MySQL数据库错误:您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在"LAST_INSERT_ID()"附近使用正确的语法

我用谷歌搜索并看了类似的问题,但没有找到答案:(

我没有尝试过PHP函数mysql_insert_id(),因为我真的想用SQL来做这件事.

Joh*_*ker 11

为什么不使用PHP的mysql_insert_id

不管...

SELECT LAST_INSERT_ID()
Run Code Online (Sandbox Code Playgroud)

... 只要你在表格中有一个自动增量列,就应该有效.


Mar*_*ers 6

你忘记了SELECT:

"SELECT LAST_INSERT_ID()"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,就是这样。但它返回 0 :( 为什么? (2认同)