下面是类代码:PHP PDO并在删除()不工作
class Delete_Category extends Category {
private $idchain = array();
public function __construct($id) {
parent::__construct();
$this->check_id($id);
$this->get_delete_ids($this->id);
$this->delete_category($this->idchain);
}
//从数据库中获取所有儿童的ID,并将其存储在阵列中
private function get_delete_ids($id) {
$this->query = $this->db->prepare("SELECT id FROM `shop_categories` WHERE parent_id = :id");
$this->query->execute(array("id" => $id));
while($result = $this->query->fetch(PDO::FETCH_ASSOC)) {
$this->get_delete_ids($result['id']);
}
$this->idchain[]= $id;
}
//内爆的阵列到ID字符串和查询扔
private function delete_category($id_array) {
$id = implode(",",$id_array);
try {
$this->query = $this->db->prepare("DELETE FROM `shop_categories` WHERE id IN (:id)");
$this->query->execute(array(':id' => $id));
}
catch(PDOException $e) {
// log it{
}
}
}
的事情是,这个总是只有最后ID结束被删除。该查询似乎正在工作,但因为它看起来很好,如果我回声它,并替换:ID与$ ID。如果呼应
// SQL输出字符串:
DELETE FROM `shop_categories` WHERE id IN (11,6)
//如果我手动将它添加到它的工作原理是这样打算的问题已经在PDO声明某处数据库...谁能帮助我?
有几个地方,你不能用事先准备好的声明的变量,这是其中之一。另外两个(我知道的)是'limit'和'offset'。 – Maerlyn 2012-03-02 20:17:53