首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将json_encode()得到的字符串放入mysql表中?

问如何将json_encode()得到的字符串放入mysql表中?
EN

Stack Overflow用户
提问于 2015-01-31 00:13:34
回答 1查看 122关注 0票数 1
代码语言:javascript
复制
$array =array();
array_push($array,"string");
$string = json_encode($array);

mysql_query('UPDATE table SET strings="'.$string.'" WHERE username="'.$username.'"');

该字符串未出现在mysql表中。当我定义一个像$string = " string“这样的字符串时,当我使用'INT‘数字per时,它可以工作。所以它在某种程度上与json_encode()函数有关。

有人能帮我一下吗。我的字符串在json_encode()中发生了什么,为什么这个字符串不适合mysql表?

EN

回答 1

Stack Overflow用户

发布于 2015-01-31 00:41:01

使用mysqli或PDO (显示了mysqli,因为它很可能更容易在您现有的应用程序中实现)

很有可能,json编码添加的字符会破坏您的SQL语法。您需要对插入的字符串进行转义:

代码语言:javascript
复制
mysqli_query("UPDATE table SET 
    strings='".mysqli::real_escape_string($string)."' 
    WHERE username='".mysqli::real_escape_string($username)."'");

您必须始终对字符串进行转义,或者转换为(int)、(float)等,以避免出现语法问题和SQL注入。或者使用预准备语句。mysqli和PDO都支持预准备语句。

在开始SQL应用程序开发时,我通常建议使用字符串构建,就像这里所做的那样,因为这样更容易理解。然而,一旦你有了经验,并且很好地掌握了SQL,我建议你转向准备好的语句。

有很多文章详细介绍了如何使用预准备语句,以及SQL注入的危险。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28240054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档