为什么我的mysql数据库表设置了不能为空,但还是能通过PHP 浏览器 添加数据进去?

2025-02-24 08:57:51
推荐回答(4个)
回答1:

上午应该是给你回答类似的问题了
1、isset只要表单有name,那肯定返回true,应该用empty()来判断。

2、数据库虽然设置不能为空,但是表单提交过来的值,在插入的时候,转换为'',即空字符串了,所以还是会插入,如果是null,就不能插入数据库了

因此只需要把isset那里换成!empty()就可以了

回答2:

你可以打开数据库看看,字段下是有值的,是一个空字符串,空字符串不是空,两个不一样的。
如果判断有没有输入内容不能用isset判断,要用
if(isset($_REQUEST['insert_enword']) && $_REQUEST['insert_enword']!="")
来判断
如果有问题请继续追问。

回答3:

空""和null不相等的,不可插入null却可以插入一个空字符串,你表单没填就是空字符串.
正确的业务逻辑是判断 empty($_REQUEST[xxx])

回答4:

NULL和空字符串是两回事