2010-06-04 38 views
0

我有一個頁面,其中有一個if...else迴路輸入數據的處理,提交時,該頁面被恢復兩次,點擊一個名爲「繼續」按鈕時即和和第二次「添加到購物車」....現在在這種情況下,當點擊按鈕「繼續」,然後執行if循環,其中數據被插入到數據庫中,並且隨着刷新,我得到所有輸入的顯示數據,這一次獲得另一個按鈕「添加到購物車」..當添加到購物車被點擊的代碼包括在else條件/循環部分執行..有關問題mysql_insert_id()應用

現在這裏我的問題就好像數據是初始插入If部分,然後再插入else被執行,所以我可以在其他部分使用mysql_insert_id()函數獲取最後插入if部分的數據嗎?

下面是代碼的類型我說的是:

If(Button Continue is clicked) 
{ 
    insert query for a product table...... 
} 
else Button Add to Cart is Clicked 
{ 
    mysql_insert_id(); to fetch last id inserted in the above above loop/condition.. 
} 

所以能得到最後插入的ID在else一部分?

回答

1

如果我瞭解你的情況,那麼不。 mysql_insert_id(及其mySQL表親LAST_INSERT_ID())將返回當前連接的最後一個插入ID有效,僅當前連接。這意味着如果您切換到下一頁,則將建立新的連接並且insert_id()將不起作用。

解決方法可能是在插入ID後將其作爲一個會話變量進行查詢後 - 它將在其他頁面中可用。 (當用戶打開多個選項卡/窗口並同時進行兩次預訂時,請小心 - 確保您爲每個預訂過程使用某種標識符。)

1

因此可以獲取最後插入的id在else部分?

你不行。你應該嘗試檢索INSERT_ID唯一的地方,只是在執行INSERT後。你不應該在會話存儲事務的具體數據 - 因此,如果你有多個插入ID和需要通過不同的網頁之間的這種信息則記錄應引用一個「主」記錄(例如購物籃),因爲這不會改變其一生這將是安全的這一記錄存儲標識符了會議。

C.