2 таблицы с одинаковым идентификатором

Допустим, у меня есть 2 таблицы в базе данных, первая таблица — это регистрация пользователей, а вторая — это данные пользователя. В таблице userregistration первичный ключ, который я использую, называется id, и он автоматически увеличивается.

Итак, скажем, я вставил одного пользователя, и идентификатор пользователя равен 1, а затем я хочу вставить данные указанного пользователя, как мне убедиться, что идентификатор также такой же, как в таблице регистрации пользователей?

Про last_insert_id уже читал, но не могу понять, как его использовать.

Вы можете создать реляционную базу данных, что-то вроде регистрации пользователя и сведений о пользователе. Идентификатор регистрации пользователя будет передан в таблицу регистрации пользователей в качестве внешнего ключа для отношения. Надеюсь, вы читали о реляционных базах данных.

Hassaan Ali 30.03.2019 15:02

Похоже, вы настраиваете столы 1: 1. Хороший способ сделать это — сделать первый первичным ключом с автоинкрементом, а второй — просто первичным ключом без автоинкремента. Используйте last_insert_id, чтобы скопировать ПК из одного в другой, когда вы делаете вторую вставку.

halfer 30.03.2019 15:05

Если это случай 1:1, возможно, нет причин для существования второй таблицы вообще. Есть ли у вас причины не хранить данные пользователя в таблице пользователей?

forpas 30.03.2019 15:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
138
1

Ответы 1

Вот пример:

$server_name = ""; //Your server name
$user_name = ""; //Database Username
$password = ""; //Database Password
$database_name = ""; //Database Name

// Create a connection
$connnection = new mysqli($server_name, $user_name, $password, $database_name);

//Insert into First Table
$sql = "INSERT INTO user_registration (firstname, lastname)
VALUES ('Firstname', 'Lastname')";

if ($connection->query($sql) == TRUE) {
    $last_inserted_id = $connection->insert_id;
    //Insert into Second Table
    $sql_two = "INSERT INTO user_registration (user_id, phone_no, address)
    VALUES ($last_inserted_id, 1234567, 'Address')";
    $connection->query($sql_two);
}

Вы должны создать ссылку на внешний ключ во второй таблице. В этом user_id является внешним ключом.

Это неплохо, но конкатенация строк учит некоторым плохим привычкам. Это было бы лучше в качестве подготовки/выполнения.

halfer 30.03.2019 15:06

Эти SQL-запросы не будут работать. У них обоих есть дополнительный ; после списка столбцов и перед VALUES;

Chris 30.03.2019 15:18

Другие вопросы по теме