$select = "SELECT MAX(order_id) FROM `order`";
mysql_query($select);
foreach ($_COOKIE['item'] as $key12 => $value) {
$value22 = explode("__", $value);
$query1 = "INSERT INTO `cart`(`cart_id`, `product_id`, `order_id`, `Quantity`, `total_price`) VALUES ('',$value22[5],'$select','$value22[3]','$value22[4]')";
$result2 = mysql_query($query1);
这个输出是SELECT MAX(order_id) FROM order
,那么这个选择和插入id的解决方案是什么
答案 0 :(得分:0)
$select="SELECT MAX(order_id) FROM `order`";
$row = mysqli_query($con,$select);
if(mysqli_num_rows($row)>0)
{
while($data = mysqli_fetch_assoc($row))
{
$order_id = $data['order_id'];
}
}
//This way you can fetch data
然后在查询中为order_id插入值时使用此项,如
$query1="INSERT INTO `cart`(`cart_id`, `product_id`, `order_id`, `Quantity`, `total_price`) VALUES ('',$value22[5],'$select','$order_id','$value22[4]')";
答案 1 :(得分:0)
从db连接中找到最后插入的id的另一种方法:
mysql_query('INSERT INTO order(a) VALUES('b'));
$id = mysql_insert_id();
然后$ id将是最后插入的id
答案 2 :(得分:0)
仅使用一个批INSERT
次查询。它使您有机会一次插入多行,例如通过只运行一个查询。而且速度要快得多。
order_id
中提取order
的最大值并分配给$maxOrderId
。INSERT
sql语句的一部分。然后将其添加到数组$insertRowValues
。$insertRowValues
数组内嵌到批处理INSERT
语句中。INSERT
次查询 - 仅一次。<?php
$select = "SELECT MAX(order_id) FROM `order`";
$maxOrderId = mysql_query($select);
$insertRowValues = array();
foreach ($_COOKIE['item'] as $key12 => $value) {
$value22 = explode("__", $value);
$insertRowValues[] = "('', " . $value22[5] . ", '" . $maxOrderId . "', '" . $value22[3] . "', '" . $value22[4] . "')";
}
$query1 = "INSERT INTO `cart`
(`cart_id`, `product_id`, `order_id`, `Quantity`, `total_price`)
VALUES " . implode(', ', $insertRowValues);
$result2 = mysql_query($query1);
mysqli
或PDO
代替mysql
,因为自PHP 5.5.0起已删除mysql
(请参阅MySQL Library - Introduction);