我在这里查看了其他示例,但其他人的语法与我的不同,所以我不知道在哪里放置“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
变量时,您可能还应该添加 isset
或 empty
检查,以避免在它们不存在时出现通知。最后,你最好使用 PDO与不太健壮的 mysql 扩展相比,使用准备好的语句。
关于php - 这段代码中的 "mysql_real_escape_string"应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9043093/