簡體   English   中英

在不使用mysql_insert_id()的情況下獲取最后插入的記錄的ID

[英]get id of last inserted record without using mysql_insert_id()

$sql =  
    'INSERT INTO customer 
(first_name, 
last_name, 
email, 
password, 
date_created, 
dob, 
gender, 
customer_type) 
VALUES(:first_name, 
:last_name, 
:email,  
:password,  
:date_created,  
:dob,  
:gender,  
:customer_type)' . ' SELECT LAST_INSERT_ID()' ; 

誰能告訴我語法是否正確? 我在使用mysql_insert_id時遇到問題,這就是為什么我在使用SELECT LAST_INSERT_ID()

錯誤消息:mysql_insert_id()[function.mysql-insert-id]:用戶'ODBC'@'localhost'的訪問被拒絕

SELECT在查詢上下文中沒有意義。 執行一個單獨的查詢。

不,這沒有任何意義。 如果您確實想選擇last_insert_id,則應在單獨的語句(實際上是下一個)中進行選擇。

但是不需要這樣做,因為您可以在API級別上進行操作。 只需為您的API調用適當的函數即可獲取最后的插入ID。 無需單獨聲明。

首先,您需要使用分號來分隔兩個查詢,其次,mysql_query不允許您同時執行兩個查詢,其次,如果您有多個並發用戶,則“ SELECT LAST_INSERT_ID”可能會出現問題(可能會發生沖突)。 mysql_insert_id有什么問題?

如果添加結束符,它將起作用; 在兩個查詢之間(至少MySQL會接受它,我不知道PHP是否會抱怨)。 但是,如上所述,它不是很好的代碼,如果將其分開,將成為競爭條件。 mysql_insert_id()找出問題,然后像設計的那樣使用。

暫無
暫無

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

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