1

这是我正在尝试使用的一些 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 外键匹配客户的主键

4

1 回答 1

2

试试这两件事:

  1. mysqli::$insert_id 而不是 mysql_insert_id() 因为您使用的是 mysqli_query() Ref# http://php.net/manual/en/mysqli.insert-id.php

  2. 也使用 else 情况,因为如果插入不成功,那么您不应该看到字符串 "echo "最后插入记录的 ID 是:" .mysql_insert_id();"

于 2013-05-28T09:25:55.893 回答