我的代码显示以下错误,我不明白如何纠正错误:
你的sql语法有错误,请检查手册对应你的mysql服务器版本,以便在第1行附近的')'使用正确的语法
$query="insert into subjective_result(marks,roll_no)values($marks,$roll)";
mysql_query($query)or die(mysql_error());
答案 0 :(得分:2)
因为您没有转义输入,所以
$query="insert into subjective_result(marks,roll_no)values('$marks','$roll')";
无论如何,这不是最好的方法,你必须使用预备语句和包装器,如PDO。如果您连接自己的查询,则可能会遇到SQL注入漏洞。
像这样的东西
// didn't test it
$stmt = $db->prepare('insert into subjective_result(marks,roll_no)values(:marks,:roll_no)');
$stmt->bindValue(":marks", $marks);
$stmt->bindValue(":roll_no", $roll_no);
if ($stmt->execute()) {
//code here
}
答案 1 :(得分:-1)
试试这个:
$query="insert into subjective_result(`marks`,`roll_no`)values(".$marks.",".$roll.")";
建议始终使用“`”(反引号字符,通常是Tab键上的键)将列名包装在SQL语句中。
此外,$marks
和$roll
是变量,它们不能像普通文本一样插入字符串中,因此您必须将它们与字符串查询连接起来。