Получить id последней вставленной строки

281
26 ноября 2016, 20:11

Есть два insert запроса.

Как для второго запроса получить значение поля id, которое формируется в результате выполнения первого. Для поля установлен AUTO_INCREMENT.

Запрос в первую таблицу:

$login = ($_POST['login']); 
$email = (trim($_POST['email'])); 
$password = md5(md5(trim($_POST['password']))); 

$sql = "INSERT INTO users (login, paroli, email) VALUES (:login, :password, :email)"; 
$sqlData = $pdo->prepare($sql);
    $sqlData->bindParam(':login', $login, PDO::PARAM_STR);
    $sqlData->bindParam(':password', $password, PDO::PARAM_STR);
    $sqlData->bindParam(':email', $email, PDO::PARAM_STR);
    $sqlData->execute();

Запрос во вторую таблицу:

$sql = "INSERT INTO images_ava (id) VALUES (:id)"; 
$sqlData = $pdo->prepare($sql);
$sqlData->execute();
Answer 1

Для того, чтобы получить идентификатор последней вставленной записи можно воспользоваться функцией lastInsertId.

В данном случае ее нужно вызвать после первого вызова execute:

$lastId = $db->lastInsertId(); // $db коннект к базе.

Затем можно использовать $latsId в последующих запросах.

PDO::lastInsertId

READ ALSO
Вопрос насчет обработчика php

Вопрос насчет обработчика php

Созрел такой вопрос: Есть форма, пользователь вводит данные, форма передаёт на обработчик, например sendphp, тот в свою очередь соединяется с mySql и вносит...

261
php при добавлении в БД кракозябры

php при добавлении в БД кракозябры

добавляю записи в бд через ajaxПри добавлении запись все русские буквы превращаются в Ðиколай

291
Вывести имена в алфавитном порядке на каждый лист в excel

Вывести имена в алфавитном порядке на каждый лист в excel

В общем я пытаюсь сгенерировать ексель файл с именами из базы данныхУ меня получилось распечатать и создать листы с каждой буквой алфавита

202