2012-02-24 45 views
-1

嗨,大家好,我使用下面的代碼來獲取mysql自動增量值其工作如何 當超過2個用戶試圖插入第二個不同的表在同一時間他們都得到相同的數字並導致錯誤。 有什麼辦法可以處理這個問題 非常感謝您的幫助和想法 例如當user1在insert.php 上得到最後一個數字100時同時user2得到的最後一個數字100在insert.php 非常感謝你的幫助。自動增量值爲多個用戶mysql php

<input id="id" class="text-input small-input required" name="id" size="20" type="text" readonly="readonly" value="<?php $query = mysql_query("SHOW TABLE STATUS LIKE 'a'"); 
$results = mysql_fetch_object($query); 
echo $results->Auto_increment; 
?>"> </p> 

回答

4

你在客戶端有什麼問題?

用戶的ID不應該對用戶可見。用戶表的id列應設置爲自動遞增。你可以在phpMyAdmin或其他方面做到這一點。當用戶創建一個帳戶時,創建用戶記錄的INSERT將使用自動遞增的「id」字段自動生成一個新的唯一用戶ID。然後,您可以在創建用戶記錄後直接獲取使用mysql_insert_id()創建的最後一個id。

$query = 'INSERT INTO users (name, email) VALUES ('.$name.', '.$email.')'; 
mysql_query($query); 
$user_id = mysql_insert_id(); 

http://php.net/manual/en/function.mysql-insert-id.php

1

不要試圖確定自動遞增值,如果要插入一行。相反,請不要在插入語句中提及id列,並且數據庫將獲得下一個自動增量值,而不會導致衝突。

如果您想知道剛剛插入了哪個ID,則可以在插入查詢後使用mysql_insert_id()。這會給你剛剛插入的行的id值。