2015-04-27 4 views
0

Я столкнулся с проблемой, когда на моем PHP по какой-то причине мне нужно определить, что такое идентификатор, или я получаю сообщение «die», даже если структура таблицы установлена ​​на автоматическое приращение, вот мой PHP:PHP + SQLi - Auto incrementing ID's

$query = mysqli_query($link, "INSERT INTO users (username, email, passhash, reg_ip, reg_date, salt)VALUES('$username','$email','$pass1','$ip_address',now(),'$salt')") or die("Could not create your account, please try again later."); 

ID в настоящее время не в этом коде, и он не работает, если бы я был сделать:

$id = 1; 

, а затем добавить его к вставке , он работает, по какой-то причине я не могу установить его как NULL.

Структура: bigint, без знака, автоинкремент, первичный ключ.

+2

Вы определили идентификатор как «AUTO_INCREMENT» при создании таблицы? – Juggernaut

+0

Какая ошибка mysql генерируется? Используйте mysqli_errno и mysqli_error для получения ошибок. – GordonM

+0

Да, отмечен A_I на phpmyadmin. –

ответ

0

Сбросьте значение автоинкремента на 1, как только вы достигли предела.

ALTER TABLE users AUTO_INCREMENT = 1 ; 
+0

Это не так, работает, когда я определяю ID. –

+0

Хорошо, тогда, как предложили другие, у вас нет значения auto_increment, установленного в вашей таблице базы данных. Если вы можете запустить этот запрос, укажите результат. 'select * from INFORMATION_SCHEMA.tables где table_name = 'users';' – Augwa

+0

Для автоматического инкремента он возвращает это: 18446744073709551615 –

0

Ну, если вы измените запрос, как это:

INSERT INTO users (id ,username, email, passhash, reg_ip, reg_date, salt) 
VALUES   (null,'$username','$email','$pass1','$ip_address',now(),'$salt') 

Попробуйте этот путь, он должен добавить идентификатор в качестве автоматического приращения.

+0

, вы также можете полностью удалить «id» из запроса и null как «значение» – Pogrindis

+0

Разве это не так, за исключением нулевого набора для ID? Я уже пробовал null, как я сказал выше, все еще получаю сообщение о смерти. Также попробовал его без определения ID, не работает. –

+0

Если идентификатор является столбцом auto_increment, то если вы вставляете его как null или, если вы его вообще не упоминаете, ошибок не должно быть. Проверьте структуру таблицы, что приведенный выше пример не работает. –

Смежные вопросы