我正在尝试创建一个允许我删除表中某一行的函数。我想将该函数用于几个不同的表,因此当我调用该函数时,我会将函数的参数之一设为表名。这是我正在尝试做的一个例子:
function delete($conn, $table, $id) {
$stmt = $conn->prepare("DELETE FROM ".$table." WHERE id = :id");
$stmt->bindParam(":id", $id, PDO::PARAM_INT);
$stmt->execute();
if ($stmt->rowCount() > 0) {
return true;
} else {
return false;
}
}
我遇到的一个问题是,因为 $table 变量直接进入 SQL 查询,我的数据库不会面临 SQL 注入的风险吗?
正如我从其他一个问题中了解到的那样,我不能只将 :table 添加到 bindParam 函数中,所以我不知道如何使这个函数安全。有任何想法吗??