@millwright

Как правильно получить ID свежесозданной строки в MySQL?

Создаю новую запись в таблице, которой автоматически присваивается ID (auto increment), нужно сразу получить этот ID, чтобы внести его в другую таблицу. Пытаюсь сделать это так:
try {
        $sql = "SELECT id FROM tricks WHERE trickName = :trickName";
        $s = $pdo->prepare($sql);
        $s->bindValue(':trickName', $_POST['name']);
        $s->execute();
        $result = $s->fetch();
        include 'test.php';
    } catch (Exception $ex) {
        $error = 'Error adding relations.';
        include $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
        exit();
    }


Имена уникальные, но я почему-то получаю массив из двух одинаковых ID.
  • Вопрос задан
  • 326 просмотров
Решения вопроса 1
@nelson
Канонический способ получения последнего использованного автоинкрементного id - это выполнение sql-запроса LAST_INSERT_ID()
Кроме того, аналогичные и более удобные функции есть в любой библиотеке для работы с базой данных.
Если вы используете стандартное расширение PDO, то nl3.php.net/manual/en/pdo.lastinsertid.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347
Crazy on performance...
MySQL умеет возвращать lastInsertID
в PDO для этого есть метод: fi2.php.net/manual/en/pdo.lastinsertid.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы