簡體   English   中英

獲取最后插入記錄的ID

[英]Get ID of Last Inserted Record

我從我稱為“訂單”的表中最后插入的記錄中檢索order_id時遇到問題。

一旦檢索到,我希望將其放入另一個名為“ reports”的表中。

我可以看到這個問題已被問過無數次,並且我已經提出了許多建議,但沒有成功。

當前,我的每個表都包含auto_increment屬性,並且我的函數在“ orders”表(不是報表表)上執行了成功的INSERT,但是我試圖達到該表。

命令

在此處輸入圖片說明

function report() {



if(isset($_GET['tx'])) {  

$amount = $_GET['amt']; 
$currency = $_GET['cc'];
$transaction = $_GET['tx']; 
$status = $_GET['st']; 
$total = 0;  
$item_quantity = 0; 




$send_order = query(" INSERT INTO orders (order_amount, order_transaction, order_status, order_currency) VALUES('{$amount}','{$currency}','{$transaction}','{$status}')");


$last_id = last_id(); // this calls last_id in functions.php


confirm($send_order);  




foreach ($_SESSION as $name => $value) { 


if($value > 0 ) { 


if(substr($name, 0, 8) == "product_") { 


$length = strlen($name - 8); 

$id = substr($name, 8 , $length);




$query = query(" SELECT * FROM products WHERE product_id = " . escape_string($id). " " );

confirm($query);



while ($row = fetch_array($query)) {

$product_price = $row['product_price'];
$sub = $row['product_price']*$value;
$item_quantity +=$value;



$insert_report = query(" INSERT INTO reports (product_id, order_id, product_price, product_quantity) VALUES('{$id}','{$last_id}','{$product_price}','{$value}')");
confirm($insert_report); //runs the confirm helper method  




} // end of while loop


$total += $sub; 
echo $item_quantity; 


} // end of substring if statement




}// end of if value




} // end of foreach loop


session_destroy();

} else {


redirect("index.php");


} //end of if isset GET tx




} // end of report function /////////////////

functions.php

function last_id() {

global $connection;

return mysqli_insert_id($connection);



}

您可以在php頁面中插入查詢后使用mysqli_insert_id($send_order)

你應該打電話

$last_id = last_id();

您使用

confirm($send_order); 

嘗試這樣:

$ send_order = query(“插入訂單(order_amount,order_transaction,order_status,order_currency)VALUES('{$ amount}','{$ currency}','{$ transaction}','{$ status}')”) ;

$ last_id = $ send_order-> insert_id;

您可以使用%d輸出最后一個ID。 例:

printf("The last id is:  %d", mysqli_insert_id($connection));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM