可能重复:
How do I handle single quotes inside a SQL query in PHP?
问候, 我有一个用于应用程序的小脚本,它将问题答案保存到数据库中。脚本如下:
while(list($QKey,$QVal) = each($AppQuestions)) {
$result2= mysql_query("
INSERT INTO forum_app_answers (AID, AppID, Question, Answer)".
" VALUES (NULL, '$AppID', '$Questions[$QKey]', '$QVal')"
) or die(mysql_error());
现在的问题是,如果有人在答案中写了'字符,那么数据就不会被保存。对于简单的写作,没关系。问题是只有答案中包含“其中”。任何帮助将受到高度赞赏tx
发生以下错误: 你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以获取使用近GF的正确语法。渠道服务')'在第1行
答案 0 :(得分:2)
使用准备好的陈述。查找PDO并使用预准备语句。
mysql_
已被弃用。
与$dbh = new PDO()
连接后,
$sql = 'sql';
$stmt = $dbh->prepare($sql);
$stmt->execute($params);
答案 1 :(得分:1)
执行以下操作:
$QVal = $mysqli->real_escape_string($QVal);
$query = "INSERT INTO forum_app_answers (AID, AppID, Question, Answer)
VALUES (NULL, '$AppID', '$Questions[$QKey]', '$QVal')";
// $mysqli is previously defined
$mysqli->query($query);
if ($mysqli->errno !=0){
printf("you have an error in your query %s", $mysqli->error);
}
答案 2 :(得分:0)
您可以尝试:
while(list($QKey,$QVal) = each($AppQuestions)) {
$result2= mysql_query("
INSERT INTO forum_app_answers
(AID, AppID, Question, Answer)". "
VALUES (
NULL,
'$AppID',
'$Questions[$QKey]',
'". mysql_real_escape_string($QVal). "')
") or die(mysql_error());
如果没有mysql_real_escape_string(),您的脚本也会遇到很大的安全问题。