我的问题是:如何将3个变量从POST放到AnswerId中,这样它就会删除我数据库中的整行。
这是我的代码:
$tbAlleAntId = $_POST['tbAntId1'], $_POST['tbAntId2'], $_POST['tbAntId3'];
$tbDeleteAnswerId = $tbAlleAntId;
$deleteAnt = "DELETE FROM Antwoorden WHERE AnswerId= ".$tbDeleteAnswerId;
$numRowsAnt=$dbQuiz->exec($deleteAnt);
$dbQuiz=null;
我正在使用PDO API进行连接。
答案 0 :(得分:0)
假设您的POST变量包含安全数据,请创建连接字符串并使用MySQL IN Clause
$tbAlleAntId = $_POST['tbAntId1'] . ',' . $_POST['tbAntId2'] . ',' . $_POST['tbAntId3'];
$deleteAnt = "DELETE FROM Antwoorden WHERE AnswerId IN(" . $tbAlleAntId . ")";
但是你应该清理你的$ _POST以确保没有发送任何有害信息(参见How can I prevent SQL-injection in PHP)。
在你的情况下,一个简单的方法是控制$ _POST实际上包含数字id而不是其他。
if (is_numeric($_POST['tbAntId1']) && is_numeric($_POST['tbAntId2']) && is_numeric($_POST['tbAntId3'])) {
$tbAlleAntId = $_POST['tbAntId1'] . ',' . $_POST['tbAntId2'] . ',' . $_POST['tbAntId3'];
$deleteAnt = "DELETE FROM Antwoorden WHERE AnswerId IN(" . $tbAlleAntId . ")";
$numRowsAnt=$dbQuiz->exec($deleteAnt);
}