我在这里查看了其他示例,但是其他所有人的语法都与我的语法不同,因此我不知道在哪里放置“ 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['author']
$_POST['story_name']
$_POST['story']
因此,将您的$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')
";
使用
isset
变量时,您可能还应该添加empty
或$_POST
检查,以免出现不存在的提示。最后,与功能较弱的mysql扩展相比,最好将PDO与预处理语句一起使用。关于php - 在此代码的哪里放置“mysql_real_escape_string”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9043093/