php - 在 SQL 和 PHP 中处理用户输入字符串的正确方法?

标签 php sql mysql

我设计了一个评论系统。这就是我基本上正在做的事情。

$story=$_POST['story'];
$story=mysql_real_escape_string($story);
$query = "INSERT INTO `comment` VALUES('$story')";

现在的问题是当我将评论存储在 " 中时被 \" 取代和所有'\' 取代。所以当我显示这些 \ 的评论时也出现在评论中。

另一个问题是&消失。例如:如果用户评论I & youI存储到数据库中。

事实上,在少数情况下,评论甚至不会进入数据库。

处理和存储用户评论以便您可以按最初编写的方式显示它们的正确方法是什么?

PS:我不担心sql注入(inject)。我只是想让评论以输入的方式显示。

最佳答案

看起来你有magic qoutes打开。你应该简单地 disable them来自 php.ini。

如果您担心sql注入(inject),请考虑使用prepared statements .

关于php - 在 SQL 和 PHP 中处理用户输入字符串的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3918595/

相关文章:

php - 似乎无法同时发送 404 和 Location header

php - Atlassian Confluence 基本登录 API 不工作 : Page Not Found

SQLite:防止重复

mysql - 计算两条记录并将它们连接到同一个 MySQL 行中

php - 在 PHP 中添加了额外的反斜杠

php - jQuery AJAX 实时更新同一页面上的多个元素

mysql - hasMany 关系的查询可能很复杂;这可以做到吗?

php - 如何简化脚本

sql - 定义mysql索引

java - 将两个或多个数据库链接到一个大数据库的术语是什么?