我看过这里的其他示例,但其他每个人的语法都与我的不同,所以我不知道将"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)我该把这个字符串添加到哪里呢?
发布于 2012-01-28 13:15:13
您需要转义查询中包含的任何变量值。因此,在您的代码中,这些将是:
$_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')
";在使用$_POST变量时,您可能还应该添加isset或empty检查,以避免在它们不存在时引起注意。最后,最好将PDO与预准备语句一起使用,而不是健壮的mysql扩展。
发布于 2012-01-28 13:29:40
//这样使用,查询将在mysql_real_escape_string中正常运行
$sql= 'INSERT INTO stories (author, story_name, story)
VALUES
('.mysql_real_escape_string($_POST[author]).',
'.mysql_real_escape_string($_POST[story_name]).',
'.mysql_real_escape_string($_POST[story]).')';发布于 2012-01-28 13:14:04
将POST变量放入新变量,然后应用mysql_real_escape_string,最后将新变量放入SQL语句。
代码如下:
include("dbconnect.php");
mysql_select_db("scratch", $con);
$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')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Story Submitted!";
mysql_close($con);https://stackoverflow.com/questions/9043093
复制相似问题