繁体   English   中英

从JavaScript字典插入到MySQL与PHP的空值

[英]From javascript dictionary inserting to mysql with php a null value

美好的一天!

我想做的是从字典(JSON字符串,无论如何)向mysql数据库插入一个空值。 在控制台上很明显,我的数据值为null,但是在插入时失败。 我尝试对php上的null进行硬编码,并且成功。 我想知道为什么当空值来自字典时它返回错误。

例1:

$query = "INSERT INTO table (field1) VALUES (" . $data['item'] . ")" <-- not working if item == null

例2:

$query = "INSERT INTO table (field1) VALUES (null)" <-- tried testing this if the db accepts null and was successful

我尝试找到相同的问题,因为我知道这可能是一个常见的问题,但是我找不到答案,而且很难弄清楚为什么会发生这种情况。

非常感谢大家!

更多细节会有所帮助,但是最好的猜测是因为PHP将null转换为空字符串,因此您正在构建以下查询:

$query = "INSERT INTO table (field1) VALUES ()";

正确地会给您一个SQL错误。 尝试这个:

$query = "INSERT INTO table (field1) VALUES (" . ( is_null( $data['item'] ) ? 'null' : $data['item'] ) . ")";

另外,您可能容易受到SQL注入的攻击。 您应该始终使用准备好的查询。

现在我懂了。 NULL是=到'',因为它实际上不包含任何内容('')。 但是,当我在单词NULL之前和之后加上撇号时,它将在我的查询中显示单词NULL。 只是一些小错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM