[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка ошибки 1062 MySQL
Raymond
Подскажите.
Делаю функционал 'Запомнить меня' (как тут во втором ответе https://stackoverflow.com/questions/3128985...sistent-cookie). Нужно сгенерировать уникальное значение (селектор)
и записать его в базу данных. Если такое значение уже в базе есть, то сгенерировать новое и снова попытаться записать, и продолжать попытку, пока не подберется и не запишется подходящее значение. То есть работа с ошибкой 1062 MySQL.

Почитал в мануале про http://php.net/manual/ru/function.mysql-errno.php , и там в последней заметке один человек пишет:
Код:
Function for creating unique md5 keys in a database. If there are duplets, then a new md5-key will be generated. For your use:

function users_md5create($id){
global $mysql_link;

while ($done==0) {
$md5key = md5(time().($id/2).$loop).md5(time().$id.$loop);
$query = "INSERT INTO users_md5create SET md5key='$md5key', fkey='$id', created=UNIX_TIMESTAMP() ";
$mysql_result = mysql_query($query, $mysql_link);
if(mysql_errno($mysql_link)!=1062) $done=1;
$loop++;
}

return($md5key);
}

если не считать всяких глобалов и и устаревшего mysql вместо mysqli, то это вроде то, что мне нужно.
Но эту заметку заминусовали. Так вот, хотелось бы узнать ваше мнение, - заминусовали только из-за уже сказанного, или потому, что нельзя использовать такой подход при обработке 1062?

И если нельзя, то какой тогда использовать подход?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.