这是我正在努力工作的一些PHP代码
<?php
$con=mysqli_connect(//);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO customers (fname, lname, address, suburb, postcode)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[address]','$_POST[suburb]','$_POST[postcode]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
$sql="INSERT INTO orders (date, location, rego, bike_id)
VALUES
('$_POST[date]','$_POST[location]','$_POST[state]','$_POST[bid]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "ID of last inserted record is: " . mysql_insert_id();
mysqli_close($con);
?>
我的问题是,我无法让mysql_insert_id工作。实际上,回声不会显示任何内容。如果我试着把它放在插入中,它就会出现0.我是一个完全新手(第一次使用php),所以我确定我做的事情显然是错的。任何帮助都非常感激。
这是我的表格: 客户:
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| cust_id | int(11) | NO | PRI | NULL | auto_increment |
| fname | varchar(20) | YES | | NULL | |
| lname | varchar(20) | YES | | NULL | |
| address | varchar(20) | YES | | NULL | |
| suburb | varchar(20) | YES | | NULL | |
| postcode | int(4) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
订单:
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| order_id | int(11) | NO | PRI | NULL | auto_increment |
| date | datetime | YES | | NULL | |
| location | varchar(65) | YES | | NULL | |
| rego | varchar(65) | YES | | NULL | |
| cust_id | int(11) | YES | MUL | NULL | |
| bike_id | int(11) | YES | MUL | NULL | |
+----------+-------------+------+-----+---------+----------------+
我尝试这样做的原因是,当用户点击订单表单上的提交时,一些详细信息会转到每个表格。我希望订单中的cust_id外键与客户的主键匹配
答案 0 :(得分:2)
尝试以下两件事:
mysqli :: $ insert_id而不是mysql_insert_id(),因为你使用的是mysqli_query() 参考#http://php.net/manual/en/mysqli.insert-id.php
也使用else case,因为如果插入不成功,那么你不应该看到最后插入记录的字符串“echo”ID:“。mysql_insert_id();”