Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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 5.7_Php_Mysql - Fatal编程技术网

php插入mysql 5.7

php插入mysql 5.7,php,mysql,Php,Mysql,我使用以下方式在php中插入值: $sql = " INSERT INTO `table` (name, email) VALUES ('$name','$email') "; 考虑到我的表有以下列:id、姓名、电子邮件、地址、电话 在mysql 5.7中,它不再允许我执行上述查询,因为它的地址没有默认值 我在mysql上为它添加了一个默认值,但有些字段不允许使用默认值,比如blob、text 我的问题是:我是否总是必须在查询中描述表的每一列,这样它才能工作?比如: $sql = " INSE

我使用以下方式在php中插入值:

$sql = " INSERT INTO `table` (name, email) VALUES ('$name','$email') ";
考虑到我的表有以下列:id、姓名、电子邮件、地址、电话

在mysql 5.7中,它不再允许我执行上述查询,因为它的地址没有默认值

我在mysql上为它添加了一个默认值,但有些字段不允许使用默认值,比如blob、text

我的问题是:我是否总是必须在查询中描述表的每一列,这样它才能工作?比如:

$sql = " INSERT INTO `table` (id,name, email, address, phone) 
VALUES ('', '$name','$email', '', '') ";

您不必为每个查询描述每一列,尤其是对于
INSERT
查询,您必须确保未指定的列具有默认值,或者可以为
NULL

对于其他查询,例如
SELECT
UPDATE
,您可以选择所需的查询,而不考虑内容是什么(当然,这同样适用于
UPDATE
,因为
INSERT
,不能为NULL的列中不能有NULL值)

您可以更改表,使不总是插入的值具有默认值,或者只是在默认情况下将其设置为NULL(如果插入时未为该列提供值)


您不必为每个查询描述每一列,尤其是对于
INSERT
查询,您必须确保未指定的列具有默认值,或者可以为
NULL

对于其他查询,例如
SELECT
UPDATE
,您可以选择所需的查询,而不考虑内容是什么(当然,这同样适用于
UPDATE
,因为
INSERT
,不能为NULL的列中不能有NULL值)

您可以更改表,使不总是插入的值具有默认值,或者只是在默认情况下将其设置为NULL(如果插入时未为该列提供值)


. 不安全!学习和使用PDO的语句,为什么要串接而不是使用?如果Bub列可以有默认值,它是什么?你不必为你所做的每一个查询描述每一个列,但是对于<代码> INSERT < /CER>查询是特别的,您必须确保未指定的列具有默认值,或者可以是
NULL
。您不需要插入id,因为如果将其设置为自动递增/主键。不安全!学习和使用PDO的语句,为什么要串接而不是使用?如果Bub列可以有默认值,它是什么?你不必为你所做的每一个查询描述每一个列,但是对于<代码> INSERT < /CER>查询是特别的,您必须确保未指定的列具有默认值,或者可以是
NULL
。您不需要插入id,因为如果它设置为自动递增/主键
ALTER TABLE table_name 
CHANGE column_name column_name type DEFAULT NULL