php - "and ' 的 MySQL/PHP 问题

标签 php mysql collation

我使用 PHP 和 MySQL 制作了一个带有评论的简单新闻系统,它在我的本地 Apache 服务器上运行良好,在我的 Fedora 10 机器和我的 Windows 7 机器上都运行良好。不过现在我遇到了问题,我将它上传到网络主机,它一直将所有 ' 和 "作为\' 和\"返回。

我相信这要么是 Web 主机出于安全原因自动添加它们,要么是 MySQL 是错误的排序规则,但我还无法解决它,测试了多个 MySQL 排序规则。

下面是一个查询示例:

mysql_query("INSERT INTO news (title, poster, text, time) VALUES ('$newstitle', '1', '$newstext', '$time')") or die(mysql_error());

$timetime(); $newstitle$newstext 是从 $_POST 解析的,并且在我运行查询(我想这可能是问题所在,但由于它是安全的一部分,我只是不想删除它,因为它不会在我的本地服务器上造成问题)

最后一点:在我的本地 Apache 服务器上,我有 latin1_swedish_ci,它在 Web 主机服务器上不起作用。

编辑:

它们在数据库中看起来像这样:

\'\'\'\"\"\"

虽然在我的本地服务器上没有额外的反斜杠,所以一定是 PHP 添加了它。除了添加一个删除多余反斜杠的函数之外,有什么办法可以解决这个问题吗?

最佳答案

这些额外的反斜杠可能是 Magic Quotes .试试disable them or remove them在处理数据之前。

关于php - "and ' 的 MySQL/PHP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865086/

相关文章:

MySQL/MariaDB 不区分大小写的排序规则仍然区分大小写吗?

php - 这种 PDO 查询是否可以防止 SQL 注入(inject)?

php - 将字符串添加到 JSON 数组中的一行

java - java中带有字符串的sql语法

MySQL 的 PHP 变量(SET '$field' = '$value')

MySql:排序规则/字符集,对于 "München"返回 "Munchen",同时对于 "Göteborg"返回 "Gøteborg"

java - 查找进程是否在 Windows 中处于 Activity 状态

php - 如何用 Simple HTML DOM 模仿子选择器?

MYSQL - JOIN 表过滤器不起作用

sql-server - 为 Sql Server 中的 nvarchar 列选择可以区分 'ss' 和 'ß' 的二进制排序规则