Как использовать 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.

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