如何将mysql_insert_id与联结表一起使用

时间:2013-01-08 07:00:21

标签: php mysql forms mysql-insert-id junction

我有一个表单和三个表:customerphone_numberjunction(用于创建多对多关系)。

我需要使用customerphone number表中新创建的自动递增ID来填充所有三个表的表单,以填充customer_idphone_id列中的junctioncustomerjunction表。

我想出了以下内容,它会将$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}}

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并使用PDOMySQLi。如果您无法决定,this article将有助于选择。如果您需要学习,请good PDO tutorial