如何将3个变量从POST放到AnswerId

时间:2015-12-11 13:13:12

标签: php mysql

我的问题是:如何将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进行连接。

1 个答案:

答案 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);
}