Как использовать mysql_insert_id с таблицей соединений
У меня есть форма и три таблицы: customer
, phone_number
, а также junction
(чтобы создать отношения многих ко многим).
Мне нужна форма для заполнения всех трех таблиц с использованием вновь созданных автоматически увеличенных идентификаторов из customer
а также phone number
таблицы для заполнения customer_id
а также phone_id
столбцы в junction
Таблица.
Я придумал следующее, которое вставит недавно созданный идентификатор из customer
стол в junction
стол, но я не могу понять, как получить номер телефона, чтобы сделать то же самое.
$query = "INSERT INTO customer (first_name, last_name) VALUES (%s, %s)",
GetSQLValueString($_POST['first_name'], "text"),
GetSQLValueString($_POST['last_name'], "text"));
$result = mysql_query();
$insertID = mysql_insert_id();
$query = "INSERT INTO junction (customer_id) VALUES ($insertID)";
mysql_select_db($database_hh, $hh);
$result = mysql_query($query, $hh) or die(mysql_error());
1 ответ
Вот псевдокод для вас:
//Insert a customer
$query = "INSERT INTO `customer` ..."
...
//Get the newly inserted customer's ID
$customer_id = mysqli_insert_id();
//Insert a phone
$query = "INSERT INTO `phone` ..."
...
//Get the newly inserted phone's ID
$phone_id = mysqli_insert_id();
...
//Insert them in the junction table
$query = "INSERT INTO `junction` (customer_id, phone_id) VALUES ($customer_id, $phone_id)"
И так как вы используете mysql_*
Вот комментарий, который вы можете увидеть здесь, в StackOveflow:
Пожалуйста, не используйте функции mysql_* для нового кода. Они больше не поддерживаются, и сообщество начало процесс амортизации. Видишь красную коробку? Вместо этого вы должны узнать о подготовленных утверждениях и использовать либо PDO, либо MySQLi. Если вы не можете решить, эта статья поможет выбрать. Если вы хотите учиться, вот хороший учебник PDO.