#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;
вот ссылка