Задать вопрос
@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.
  • Вопрос задан
  • 337 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Skillbox
    PHP-разработчик. Базовый уровень
    3 месяца
    Далее
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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