对于那些开发人员来说可能是一个简单的
我有这个代码将order_id和order_name插入'orders'表:
<?php
// start the session handler
require_once('dbfunction.php');
//connect to database
$conn = DB();
require_once('header.php');
//should we process the order?
if (isset($_POST['process'])) {
$order_name = $_POST['order_name'];
//create initial order
$stmt = $conn2->prepare("INSERT INTO orders (order_name) VALUES (?)");
//bind the parameters
$stmt->bind_param('s', $order_name);
// Execute query
$stmt->execute();
我现在想要将订单商品插入到order_items表中,我似乎无法保留插入“订单”表时创建的相同ID,并将其与order_items一起添加到“order_items”表中。这是我的代码:
//this gets the most recent auto incremented ID from the database - this is the order_id we have just created
$order_id = mysql_insert_id();
//loop over all of our order items and add to the database
foreach ($_SESSION['order'] as $item) {
$prod_id = $item['prod_id'];
$quantity = $item['quantity'];
$prod_type = $item['prod_type'];
$stmt = $conn2->prepare("INSERT INTO order_items (order_id, prod_id, quantity, prod_type) VALUES (?, ?, ?, ?)");
//bind the parameters
$stmt->bind_param('iiis', $order_id, $prod_id, $quantity, $prod_type);
// Execute query
$stmt->execute();
}
echo "<p class='black'>Order Processed</p>";
答案 0 :(得分:3)
我猜它是因为你正在使用的任何数据库库正在做一些使mysql_insert_id
无效的事情(假设它甚至使用mysql
函数)。我建议您查看图书馆,找出他们建议您使用的方法。
答案 1 :(得分:1)
SQL Server有@@ IDENTITY
看起来mySQL有LAST_INSERT_ID();
我的猜测是你正在使用mySQL。如果没有,那么请让我知道版本,以便我可以更新