首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php格式中使用引号和撇号

问在php格式中使用引号和撇号
EN

Stack Overflow用户
提问于 2016-10-08 05:40:44
回答 2查看 146关注 0票数 0

我有一个表单,上传数据到mysql数据库。有一个处理表单的外部php文件。当有人使用引号或撇号时,我就遇到了问题。下面是在表单中输入的内容和在数据库中显示的内容的示例:

如果我在表单中输入target's,它在数据库中显示为target\'s如果我在表单中输入"Sud",它在数据库中显示为\"Sud\"

在变量声明中,我使用了以下内容:

代码语言:javascript
复制
$var = mysql_escape_string($_POST['var']);

在insert语句中,我使用的是:

代码语言:javascript
复制
$query = "INSERT INTO tablename VALUES ('$var')";

我还尝试了mysql_real_escape_string,当我使用该函数时,根本没有向表中插入任何数据。

有人能告诉我,我需要做什么来转义这些字符,这样数据就会像在表单中输入的那样出来?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-10-08 05:53:45

首先,请注意mysql_escape_string已弃用,请参阅mysql_escape_string

其次,我怀疑你的问题是由表格字符集引起的,试着使用mysql_real_escape_string看看这是否能解决它。

请注意,mysql_real_escape_string也已弃用

票数 0
EN

Stack Overflow用户

发布于 2016-10-08 08:46:45

使用PDO和查询参数更安全、更容易:

代码语言:javascript
复制
$query = "INSERT INTO tablename (columnname) VALUES (?)";
$stmt = $pdo->prepare($query);
$stmt->execute([$_POST['var']]);

使用查询参数,您永远不需要担心引号/转义、可能的撇号或任何其他棘手的字符。

mysqli扩展也支持查询参数,但我建议您跳过mysqli,学习PDO。PDO更易于使用。

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

https://stackoverflow.com/questions/39926193

复制
相关文章

相似问题

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