gpt4 book ai didi

php - 使用 MySQL 和 PHP PDO 发出基于 SELECT 语句的运行查询

转载 作者:行者123 更新时间:2023-11-28 23:11:22 25 4
gpt4 key购买 nike

我有一个包含两个表的数据库

  • 用户列表
  • 子任务

一个 parent 可以有很多 child 。一个 child 只能有一个 parent 。如果 parent 至少有一个 child ,则应该运行一个 DELETE 语句。如果不存在子项,则应运行不同的 DELETE 语句。我有以下内容:

try {
$del_id = $_GET['del_id'];

$select = "SELECT count(parentID) FROM subtasks WHERE parentID = :del_id";
$select = $pdo->prepare($select);
$select->bindParam(':del_id', $_GET['del_id']);
$result = $select->fetchAll();

if($result >= 1) {
$delete = "DELETE userlists, subtasks FROM userlists INNER JOIN subtasks ON userlists.listID = subtasks.parentID WHERE listID = :del_id";
$delete = $pdo->prepare($delete);
$delete->bindParam(':del_id', $_GET['del_id']);
$delete->execute();
header("Location: loggedin.php");

} else {
$delete = "DELETE FROM userlists WHERE listID = :del_id";
$delete = $pdo->prepare($delete);
$delete->bindParam(':del_id', $_GET['del_id']);
$delete->execute();
header("Location: loggedin.php");
}
}

如果我的 parent 至少有一个 child ,则第一个 DELETE 语句会按预期运行。但是,如果没有子项,则似乎整个代码都在尝试运行第一个 DELETE 语句并返回到 loggedin.php,后者随后不会删除父项,因为没有子项。

第二个查询没有运行是否有特定原因?

最佳答案

如果你 var_dump $result 你会看到它是一个数组。设置后,它将等于 1,即真。尝试 if(count($result) >= 1) 看看是否有帮助。

关于php - 使用 MySQL 和 PHP PDO 发出基于 SELECT 语句的运行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com