下面是類代碼: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