如何檢查某個ID是否存在於mysql數據庫中,如果存在:創建一個新ID並重新檢查。我有以下代碼來創建一個ID:檢查數據庫中是否存在ID
$length = 10;
$id = '';
for ($i = 0; $i < $length; $i++) {
$id .= chr(rand(ord('0'), ord('9')));
}
要檢查是否存在的ID我用下面的代碼:
$database->query('SELECT user_id FROM users
WHERE public_id = ':public_id',array(':public_id' => $public_id)');
if($database->count() >= '1') {
//create a new id
} else { }
請注意[TOCTOU](http://en.wikipedia.org/wiki/Time_of_check_to_time_of_use)錯誤,您使用此ID的原因是什麼以及爲什麼它是隨機的? – Ghost 2012-08-09 17:21:19
'id'列是主鍵嗎?如果是這樣,你可以使用[INSERT ... ON DUPLICATE KEY UPDATE](http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html)來檢查重複鍵並創建一個新的條目,如果它已經存在於一個語句中。但仍然不確定你想要完成什麼。 – Romuloux 2012-08-09 17:21:54
爲什麼你需要「再次檢查」?一旦它被插入到數據庫中,就知道它在那裏。 – Matt 2012-08-09 17:22:14