尽管我已经通过将其单独放在页面上进行了测试,但以下代码仍无法正常工作。为了在这个查询之后清楚地表明这一点,我正在执行一个选择查询来显示数据库中的所有用户。
$db->query("DELETE FROM Projet_Client WHERE username = '$_GET[d]'");
echo "<div class='alert alert-success text-middle'><strong>Succès</strong>, le
client a été supprimé.</div>";
这是查询的“回显”,向您展示它的样子:
DELETE FROM Projet_Client
WHERE
username = 'a75ea99ce47306ec259d4c905bb9c3f762a531ee'
(我正在使用我的sql)。谢谢。
我更改了代码,它看起来像这样:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
try {
$stmt = $db->prepare('DELETE FROM Projet_Client WHERE username= :username');
$stmt->bindParam(':username', $_GET['d']);
$stmt->execute();
} catch(Exception $e){
echo 'Exception -> ';
var_dump($e->getMessage());
}
但是没有抛出异常。
问题已解决。我必须使用外键更改约束:ON DELETE = CASCADE
最佳答案
您确定查询正在正确执行吗? 你的询问对我来说看起来没问题。
也许您可以尝试使用以下命令来回显错误(如果有):
if ($conn->query($sql) !== false) {
echo "Record deleted successfully";} else {
echo "Error deleting record: " . $conn->error;
}
关于php - 删除不适用于 pdo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49975225/