无法让mysql_insert_id工作,无法在任何地方找到答案

时间:2013-05-28 09:14:34

标签: mysql sql

这是我正在努力工作的一些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外键与客户的主键匹配

1 个答案:

答案 0 :(得分:2)

尝试以下两件事:

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

  2. 也使用else case,因为如果插入不成功,那么你不应该看到最后插入记录的字符串“echo”ID:“。mysql_insert_id();”