Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 处理表单输入到SQL的空值_Php_Mysql - Fatal编程技术网

Php 处理表单输入到SQL的空值

Php 处理表单输入到SQL的空值,php,mysql,Php,Mysql,所以 我尝试创建动态SQL查询,假设: 如果GET或POST没有变量集,我们称之为notset 如果设置了_GET或_POST,但该值为空,则我们称之为empty 如果设置了_GET或_POST,但该值不为空,则我们称之为非空 现在我们可以轻松地将空的和非空的变量按原样存储在MySQL中(因为我们知道最终用户的意图,因为变量已经设置好了) 到目前为止,我们的地图: EMPTY & NON-EMPTY = whatever the value is... (对于MySQL中的日期列,因

所以

我尝试创建动态SQL查询,假设:

如果GET或POST没有变量集,我们称之为
notset

如果设置了_GET或_POST,但该值为空,则我们称之为
empty

如果设置了_GET或_POST,但该值不为空,则我们称之为
非空

现在我们可以轻松地将
空的
非空的
变量按原样存储在MySQL中(因为我们知道最终用户的意图,因为变量已经设置好了)

到目前为止,我们的地图:

EMPTY & NON-EMPTY = whatever the value is... 
(对于MySQL中的日期列,因为它不允许为空,所以我们将其放入0000-00-00 00:00:00。我们将此逻辑用于
插入和
更新

NOT-SET in PHP = NULL in database? (since we don't know anything about the value)
现在,这非常适用于数据不存在的情况,例如INSERT语句,但是UPDATE语句呢

如果记录已经有一个值怎么办

我正在考虑使用NOT SET变量,以便在UPDATE语句中被忽略

因此,如果POST[“name”]未设置为
INSERT
,那么我们仍然将其作为空值插入

INSERT INTO person (name) VALUES (POST["name"]);
但是,如果它是一个
UPDATE
语句,我们将完全忽略它

UPDATE person 
isNull(POST["name"]) ? SET name = POST["null"]
我的难题是,当这些变量未设置时,我们如何处理
插入
更新

如果没有设置:

插入

INSERT INTO person (name) VALUES (NULL);
更新

INSERT INTO person (name) VALUES (NULL);
如果未设置,则不调用update,因为值可以是:

1) Null:如果为Null,则无需更新它

2) 不为Null:如果不为Null,则如果将其赋值为Null,则将失去值

PS:根据我对要求的理解,这是我的建议,但是 根据实际要求可能有所不同


字段1



字段2


字段3



你明白我想知道的。我知道我可以做你正在做的事情,但是有更好或者更简单的方法吗?好的,看看上面修改过的例子。没有比这更干的了。如果您只需要这些,请记住标记为已回答。如果您需要更多帮助,请发布您目前掌握的代码。谢谢谢谢,我对答案投了赞成票。我已经有了一个更加枯燥的代码,但是感谢您的尝试:)。