在php和mysql的用户输入中带有默认值和null str时,如何使用统一的sql进行insert
这里有一个mysql表,如下所示:在php和mysql的用户输入中带有默认值和null str时,如何使用统一的sql进行insert,php,mysql,integer,default,Php,Mysql,Integer,Default,这里有一个mysql表,如下所示: create table abc ( name varchar(20) not null, value int not null default 20 ) insert into abc values('first name', '30') 在php页面中,我想对所有插入使用统一的sql,如下所示: create table abc ( name varchar(20) not null, value int not nul
create table abc (
name varchar(20) not null,
value int not null default 20
)
insert into abc values('first name', '30')
在php页面中,我想对所有插入使用统一的sql,如下所示:
create table abc (
name varchar(20) not null,
value int not null default 20
)
insert into abc values('first name', '30')
但有时,可能有人不输入值,插入sql会像
insert into abc values('a name', '')
为什么它不能工作?mysql对列显示了不正确的整数值:''。和
我希望它给出默认值。我该怎么做呢?如果您已使用
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')";
是的,你的答案可以解决这个问题,但我告诉过你,只有一段时间字段是“”,而value并不是这个场景中唯一的字段,可能有很多,我不想写这么多$var并给它一个值,然后检查字段是否是“”,再次,你试图在整数字段中插入一个非整数,这就是你的错误信息告诉你的。要么将适当的值放入Insert语句的这一部分来处理它,要么避免它(因为您希望在此字段中使用默认值),而不在表名和值之间的fieldset参数中声明此字段。