PDO从数据库中删除记录时遇到了一些问题。
它只是返回false,我似乎无法理解为什么,任何人都可以帮忙吗? 代码:
$db = new PDO('sqlsrv:Server='.DB_HOST.';Database='.DB_NAME, DB_USER, DB_PASS);
$query = $db->prepare('DELETE * FROM '.$table.' WHERE id = :id');
$query->bindValue(':id', $id);
$query->execute();
我也试过了:
$db = new PDO('sqlsrv:Server='.DB_HOST.';Database='.DB_NAME, DB_USER, DB_PASS);
$db->exec('DELETE * FROM '.$table.' WHERE id = '.$id);
我知道数据库中的用户有权删除,因为我可以在SQL客户端中成功运行查询。
有什么想法吗?
谢谢:)
答案 0 :(得分:4)
答案 1 :(得分:3)
你的第一个例子很好,一个错误
$db = new PDO('sqlsrv:Server='.DB_HOST.';Database='.DB_NAME, DB_USER, DB_PASS);
$query = $db->prepare('DELETE FROM '.$table.' WHERE id = :id');
$query->bindValue(':id', $id);
$query->execute();
您不需要在简单的删除声明中使用*。
仅供参考,rowCount()
可以很好地确认删除工作,具体如下:
$countDel = $query->rowCount();
if ($countDel == 0) {
echo "No rows deleted";
}