我正试图从数据库中的三个表中删除一行。每一行都有相同的主键,当按下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."'");
第三。
检查您的代码是否成功连接到数据库,以及是否正确设置了所有权限。