我有一个表单和三个表:customer
,phone_number
和junction
(用于创建多对多关系)。
我需要使用customer
和phone number
表中新创建的自动递增ID来填充所有三个表的表单,以填充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());
表中新创建的id插入到{{1}}表中,但我无法弄清楚如何获取电话号码来执行同样的事情。
{{1}}
答案 0 :(得分: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_ *函数用于新代码。它们已不再维护,社区已开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDO或MySQLi。如果您无法决定,this article将有助于选择。如果您需要学习,请good PDO tutorial。