Для этого есть две возможные причины:
- Для этого столбца определено значение по умолчанию
- Ваш столбец
INT NOT NULL
и приводит значения NULL
к INT
, что приводит к 0
Вторая ситуация, похоже, имеет место и здесь.Если вы хотите получить ошибку вместо этого, вы можете изменить SQL_MODE
на строгий.Другая возможность состоит в том, чтобы выполнить проверку ввода в вашей программе, а не оставлять ее для SQL.