php - 这段代码中的 "mysql_real_escape_string"应该放在哪里?

标签 php mysql escaping

我在这里查看了其他示例,但其他人的语法与我的不同,所以我不知道在哪里放置“mysql_real_escape_string”。 这是我当前的代码:

include("dbconnect.php");

mysql_select_db("scratch", $con);

$sql= "INSERT INTO stories (author, story_name, story)

VALUES 
('$_POST[author]','$_POST[story_name]', '$_POST[story]')";


if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "Story Submitted!";

mysql_close($con)

我应该在哪里添加该字符串?

最佳答案

您需要转义查询中包含的所有变量值。所以在你的代码中这些将是:

  • $_POST['作者']
  • $_POST['story_name']
  • $_POST['故事']

因此,将您的 $sql 变量更改为如下所示:

$author     = mysql_real_escape_string($_POST['author']);
$story_name = mysql_real_escape_string($_POST['story_name']);
$story      = mysql_real_escape_string($_POST['story']);

$sql= "
INSERT INTO stories (author, story_name, story)
VALUES ('$author','$story_name', '$story')
";

在使用 $_POST 变量时,您可能还应该添加 issetempty 检查,以避免在它们不存在时出现通知。最后,你最好使用 PDO与不太健壮的 mysql 扩展相比,使用准备好的语句。

关于php - 这段代码中的 "mysql_real_escape_string"应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9043093/

相关文章:

mysql - SQL 将值与特定年份的平均值进行比较

php - 使用 where 条件连接查询 codeigniter 返回所有行

python - 逆转 Python 的 re.escape

hibernate - Grails/GORM/Hibernate 应用程序不是 SQL 转义输入数据

mysql - MySQL 中的特殊字符转义

php - 如何使用 PHP 检测爬虫/蜘蛛?

php - 在 heroku 上使用 pgsql 部署 laravel php 应用程序

php - 如何解决 Cron 作业运行错误

php - 如何设计插件系统才不会浪费那么多资源?

mysql - 如何在非常大的数据库上快速搜索