MySQL - почему LAST_INSERT_ID () не работает для меня? - PullRequest
1 голос
/ 09 января 2010

У меня есть следующий код:

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

Моя функция запроса выглядит так:

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

Я получаю следующую ошибку:

Ошибка базы данных MySQL: у вас ошибка в синтаксисе SQL; проверить руководство, которое соответствует вашему MySQL версия сервера для правильного синтаксиса использовать рядом с 'LAST_INSERT_ID ()'

Я погуглил и посмотрел похожие проблемы, но не нашел ответа: (

Я не пробовал PHP-функцию mysql_insert_id () , поскольку я действительно хотел бы сделать это с помощью SQL.

Ответы [ 11 ]

0 голосов
/ 09 января 2010
SELECT LAST_INSERT_ID();

Если бы я был тобой. Я бы заставил ваш insert / select last_insert_id работать из командной строки или браузера запросов, прежде чем php. Как минимум, это как минимум подтвердит или отклонит правильный синтаксис sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...