【发布时间】:2018-09-12 15:08:01
【问题描述】:
使用 PHP 版本 7.1.9,MariaDB 10.1.26。
我正在向 MySQL 数据库提交表单数据,我的值之一是 NULL 但在数据库中它是空的。
我已确保我的数据库表设置为;
- 允许 null = 是
- 默认 - 空
我的代码在下面(请忽略任何安全漏洞,这是简化的代码);
$id = $_POST['id '];
$name = $_POST['name'] ? $_POST['name'] : NULL ;
$sql = "INSERT INTO staff (id, name) VALUES ('".$id."', '".$name."')
// query runs and inserts successfully
当我var_dump($name) 时,我得到NULL,尽管我数据库中的name 值为空(即不是null)
任何想法我做错了什么?
【问题讨论】:
-
您是否可以插入一个空字符串而不是 NULL?
-
如果您没有
$name的值,则您的查询应该只是$sql = "INSERT INTO staff (id) VALUES ('".$id.")以使数据库中的名称为 NULL -
@GeorgeHanson 这实际上是他的查询所发生的事情
-
另外,
id不是自增主键吗?那么你根本不应该将它包含在查询中。 -
我想指出原始发帖人说“请忽略任何安全漏洞,这是简化的代码”......似乎每个人都在他们的回复中忽略了这一点。我认为该声明的意思是“我知道安全措施并且我正在使用它们。”