Получение идентификатора из предыдущего запроса

#php #sql

Вопрос:

У меня есть 3 таблицы, которые подключены. Таблица страхования связана с таблицей клиентов и деталями аренды, которые также связаны с таблицей клиентов. Я хочу вставить данные в эти таблицы одновременно. Что я должен поместить в столбцы идентификатора (не основной идентификатор, а коррелированный)? Для всех основных идентификаторов установлено автоматическое увеличение. Я пробовал с @@IDENTITY и mysql_insert_id. Вот мой код

 //inserting into insurance table
    if($connection->query("INSERT INTO insurance (Collision_Coverage, 
    Medical_Coverage) VALUES ('$collision_coverage','$medical_coverage')"))
    {
        //inserting into customer table
        if($connection->query("INSERT INTO customer (People_ID, Driving_License_No, Insurance_id) VALUES ('$current_user_id', '$driv_lic_num', @@IDENTITY)"))
        {
            //inserting into rental_details table
            if($connection->query("INSERT INTO rental_details (Vehicle_ID,Customer_ID, Hire_Date, Hire_Days, Total_cost, Return_date) VALUES ('$current_vehicle_id', @@IDENTITY, '$pick_up_date', '$days_hired', '$total_cost', '$returning_date')"))
 

Комментарии:

1. Это mysqli или PDO? Что бы это ни было, вы должны использовать параметры вместо того, чтобы вставлять строки в свои запросы подобным образом, но независимо от того, я думаю, что последний идентификатор вставки отличается между ними. mysql_insert_id не будет работать, потому что старых mysql_ функций больше нет в PHP, и вы не используете их для остальной части операции.

2. Какой тип базы данных вы используете? например @@IDENTITY , только для MS SQL Server, он не будет работать, если вы используете Mysql.

3. Это mysqli, я использую XAMPP и phpMyAdmin

4. В этом случае: php.net/manual/en/mysqli.insert-id.php

5. P.S. Терминологическое примечание: phpMyAdmin — это просто веб-инструмент администрирования для управления базами данных MySQL. (Это один из многих таких клиентов администрирования). Ваш код подключается непосредственно к серверу базы данных MySQL и не имеет ничего общего с phpMyAdmin.

Ответ №1:

используйте insert_id для получения последнего идентификатора вставки

 $lastId = $connection->insert_id;
echo $lastId;
 

вот ссылка