Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php和mysql的用户输入中带有默认值和null str时,如何使用统一的sql进行insert_Php_Mysql_Integer_Default - Fatal编程技术网

在php和mysql的用户输入中带有默认值和null str时,如何使用统一的sql进行insert

在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

这里有一个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 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参数中声明此字段。