PHP - INSERT并将LAST_INSERT_ID()保存到变量中

时间:2017-04-12 23:05:03

标签: php mysql return-value mysqli-multi-query last-insert-id

我很抱歉我的PHP技能,但我只是不知道如何执行这个简单的任务,即插入一个新行并将其ID保存到变量中。 这就是我得到的:

    // mysql inserting a new row
$sql = "INSERT INTO `order` (orderTitle, orderDescription, orderPrice,userID, categoryID)
  VALUES('$title', '$description','$price','$userID','$category');";

$sql .= "SELECT LAST_INSERT_ID();";
$result = mysqli_multi_query($con,$sql);

$result_get_id= mysqli_next_result($con);
$row = mysqli_fetch_row($result_get_id);
$order_id = $row[0]; // <-- how to get this value?? 

我意识到row [0]不起作用,这就是为什么我想知道如何正确提取LAST_INSERT_ID()值。

2 个答案:

答案 0 :(得分:1)

这里有几件事......

  1. 不要使用mysqli_multi_query - 在您的示例中没有必要。仅在mysqli_query上使用INSERT。无需在SQL中查询最后一个插入ID。
  2. 要获取最后一次插入ID,请在mysqli_insert_id查询后直接致电INSERT。您可以将其分配给变量,例如$order_id = mysqli_insert_id();

答案 1 :(得分:0)

您正在使用的数据库类内置了此功能,例如mysqli_insert_id(),或PDO $ db-&gt; lastInsertId()。

$mysqli->query("INSERT INTO order ... ");
printf ("Primary key of new record: %d.\n", $mysqli->insert_id);

http://php.net/manual/en/mysqli.insert-id.php