我在更新名为“answers”的数据库表中的值时遇到了问题。因为它没有更新该表。所以,这是我的代码:
if(isset($_POST['marked']))
{ $marked= $_POST['marked'];
$command= "UPDATE Answers SET " .
"SessionID=" . $_POST['SessionID'] . ", " .
"TestID=" . $_POST['TestID'] . ", " .
"QuesID=" . $_POST['QuesID'] . ", " .
"A1=0, " .
"A2=0, " .
"A3=0, " .
"A4=0, " .
"A5=0, " .
"A6=0, " .
"AnswerText=\"\", " .
"SortOrder='" . intval($_POST['Order']) . "' " .
"marked=1".
"WHERE SessionID=" . $_POST['SessionID'] .
" AND QuesID=" . $_POST['QuesID'];
$lolsql= mysql_query($command, $conn);
}
每当有人点击标记(提交按钮)时,我想将值为 0 的“标记”字段更新为 1。 请有人帮助我。提前致谢:)
最佳答案
你的代码极易受到注入(inject)攻击,因为你根本没有清理你的输入并直接更新你的数据库,其次开始使用mysqli_()
或PDO语句
, mysql_()
不再由社区维护。
至少使用mysqli_real_escape_string()
来清理你的输入
示例
if(isset($_POST['whatever'])) {
$holder = mysqli_real_escape_string ($connection, $_POST['value']);
}
你的查询完全困惑,为什么要使用串联?你不能像这样简单地写你的查询吗?
$query = "UPDATE table_name SET col_name = '$value', col_name2 = '$value2' ... WHERE ...";
关于php - 无法更新mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13209330/