带有pkID的MySQL delete语句


MySQL delete statement with a pkID

我正试图从数据库中的三个表中删除一行。每一行都有相同的主键,当按下html提交按钮时应该将其删除。

这是我的代码:

//Delete Every entry with pk = $id
 if(isset($_POST["butDelete"])){
     // minor security check
     if ($fromPage != $yourURL) {
         die("<p>Sorry you cannot access this page. Security breach detected and reported.</p>");
     }
     //Delete from tblUser
     $sql = "DELETE ";
     $sql .= "FROM tblUser ";
     $sql .= "WHERE pkID=" . $id;
     $stmt = $db->prepare($sql);
     $stmt->execute();
     //Delete from tblPhoto
     $sql = "DELETE ";
     $sql .= "FROM tblPhoto ";
     $sql .= "WHERE pkID=" . $id;
     $stmt = $db->prepare($sql);
     $stmt->execute();
     //Delete from tblAlbum
     $sql = "DELETE ";
     $sql .= "FROM tblAlbum ";
     $sql .= "WHERE pkID=" . $id;
     $stmt = $db->prepare($sql);
     $stmt->execute();
 }

该代码目前没有删除任何记录,我不确定原因。起初,我认为创建的MySQL语句可能有问题,但我找不到任何问题。感谢您的帮助!

1st。

尝试回显您的$sql查询,并尝试直接在phpMyAdmin上运行它,以确定您是否只是在连接字符串时遗漏了一些内容。

第二。

如果ID是字符串,那么您就缺少了类似于单引号的内容。试试这样的东西:

$sql = $db->prepare("DELETE FROM tblName WHERE id = '".$pkID."'");

第三。

检查您的代码是否成功连接到数据库,以及是否正确设置了所有权限。