删除PDO中查询的正确方式



我已经习惯了使用PDO并运行一些命令,尽管下面的代码可以工作,但即使我故意尝试通过以下操作使其失败,它也不会出现任何错误:WHERE `url_id`='{11$_GET['shortnerId']}'

$db5 = new PDO("mysql:host=localhost;dbname=admin_xxx", "admin_xxx", "xxx");

if ($_GET['do'] == "delete") {
try {
if ($db5->query("DELETE FROM `urls` WHERE `url_id`='{$_GET['shortnerId']}'")) {
echo '<div class="alert alert-success" role="alert"><i class="fas fa-check"></i> <strong>URL shortner</strong> has been <strong>deleted</strong>.</div>';
} else {
echo '<div class="alert alert-danger" role="alert"><i class="fas fa-exclamation-triangle"></i> Error!</div>';
}                   

}
catch (PDOException $e)
{
echo "<div class='alert alert-danger' role='alert'><i class='fas fa-exclamation-triangle'></i>{$e->getMessage()}</div>";
}       

}

尽管这对工作代码来说很奇怪,但这是PDO中删除查询的正确方式吗?这是有效的,但我希望以正确的方式进行,如果这不是顶级的标准方式,任何信息都将不胜感激。

下面是一个MySQL Delete命令的示例,使用PHP的PDO Prepared Statement;

$stmt = $db5->prepare("DELETE FROM urls WHERE url_id=?");
$stmt->execute(array($_GET['shortnerId']));

有关如何使用PHP PDO Prepared Statements的更多信息,请访问他们的网站;https://www.php.net/manual/en/pdo.prepared-statements.php

最新更新