Как пропустить проверку пустых значений mysqli? - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть имя таблицы user и имя 4 столбца id userid username password, где id - автоинкремент. Значение по умолчанию userid равно 0 username, значение по умолчанию - none, а также password none.

id is int
userid is int
username is varchar
password is varchar

Теперь, если я вставлю какую-либо строку, такую ​​как

mysqli_query($con, "INSERT INTO user SET userid='1', username='name'");

Then it's showing Field пароль doesn't have a default value

Теперь, если я вставлю какую-либо строку, такую ​​как

$userid = $_GET['id'];

mysqli_query($con, "INSERT INTO user SET userid='".$userid."', username='name', password='1234'");

Теперь, если $_GET['id']; пуст, то он показывает Incorrect integer value: '' for column 'userid' at row 1

Мой предыдущий сервер не предупреждает меня так, но это новый сервер, и он показывает вот так, как я могу пропустить эту проблему?

1 Ответ

0 голосов
/ 17 ноября 2018

запрос вставки будет иметь вид

INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);

, если вы хотите вставить имя пользователя и поле пароля, оба поля будут пустыми, поэтому вы можете редактировать поле на вкладке "Структура", установите флажок "NULL".Если этот флажок установлен, это эквивалент оператора DEFAULT NULL.

вы можете установить значение по умолчанию, используя запрос, например

установить значение по умолчанию для поля имени пользователя

ALTER TABLE `table_name` CHANGE `username` `username` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

установить значение по умолчаниюпустое поле пароля

ALTER TABLE `table_name` CHANGE `password` `password` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...