|
|
1
2
首先,你显然没有使用事先准备好的语句。我强烈建议你以安全和稳定的名义使用事先准备好的声明。
保留(非常危险和易受攻击的)示例代码,并修改在要插入的字符串周围添加“引号”的位置。如果名称为空,只需插入
现在,研究如何进行准备好的查询以防止SQL注入 或者至少使用mysqli\u real\u escape\u string或者类似的东西。
|
|
|
2
3
编辑 原来的海报说 我将其解释为“我知道SQL注入,我正在代码中采取措施防止它。我简化了我的帖子,以便更容易得到答案。” 我下面的回答是按照他们的格式。这就是为什么我没有在我的帖子中使用PDO,mysqli,prepared statements/escape措施。如果我亲自编写代码将数据插入数据库,我会确保我的数据经过清理,并使用类似ORM的原则(这是PDO的包装器)直接与数据库交互。
引用原帖子中的代码:
您的查询的行为方式与您编写代码的方式相同。如果将PHP变量设置为NULL后将其回显/打印到标准输出,则根本看不到值。Null表示没有值。因为您已经将没有值(no value,null)的情况用单引号括起来,所以您告诉MySQL您想在name列中插入一个空字符串。 我会重写代码如下:
在MySQL中向列添加null值。
|
|
|
3
0
相反,我会使用PDO准备的语句。应该将值设置为NULL而不是空字符串。因为你在包装
|
|
4
0
我想这样做:
|