Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Способ получения уникального идентификатора
 
 автор: Владимир55   (03.02.2009 в 01:27)   письмо автору
 
 

Формируем таблицу например так:
    $query = "CREATE TABLE bot
    (
        id INT(11) NOT NULL AUTO_INCREMENT,
        no INT(43)
        namebot TEXT,
        PRIMARY KEY(no)
    )";     
    mysql_query($query);

А алгоритм формирования ключа no таков:
$no =  SELECT LAST_INSERT_ID() . session_id(); 

Годится?

  Ответить  
 
 автор: cheops   (03.02.2009 в 02:33)   письмо автору
 
   для: Владимир55   (03.02.2009 в 01:27)
 

Почему бы и нет... Перед последним запросом выполняется оператор INSERT? Дело в том, что LAST_INSERT_ID() срабатывает только если была вставка в текущую сессию, в противном случае функция возвращает 0.

  Ответить  
 
 автор: Trianon   (03.02.2009 в 09:01)   письмо автору
 
   для: Владимир55   (03.02.2009 в 01:27)
 

Автоинкрементное поле без первичного ключа на нем сделать не получится.
Да и в поле INT 43 десятичные цифры будет уложить проблематично. Оно больше 18 не съест.
Насколько я помню.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования