Как я могу использовать единообразный SQL для вставки, когда приходят со значением по умолчанию и нулевой строкой в ​​пользовательском вводе с php и mysql - PullRequest
1 голос
/ 26 мая 2011

Здесь у меня есть таблица mysql, подобная этой:

create table abc (
    name varchar(20) not null,
    value int not null default 20
)

, и на странице php я хочу использовать единый sql для всех вставок, например:

insert into abc values('first name', '30')

, но иногда, может быть, кто-то не вводит значение, и вставка sql будет выглядеть как

insert into abc values('a name', '')

, и почему это не может работать?MySQL говорит Incorrect integer value: '' for column..., и я хочу, чтобы он дал значение по умолчанию.Как я могу это сделать?

1 Ответ

0 голосов
/ 26 мая 2011

Вы не можете вставить нецелое значение в ваше поле, если вы объявили его как целое число с NOT NULL.

1) Либо управляйте значением через ваш код, если вы хотите использовать один и тот же оператор INSERT в обоих случаях ...

$var = 30;
$SQL = "INSERT INTO abc () VALUES('first name', '".$var."')";

2) ... или два разных INSERT s для значений по умолчанию:

/* for the default value */
$SQL = "INSERT INTO abc (somefield) VALUES('first name')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...