PHP PDO多个删除查询不起作用

PHP PDO多个删除查询不起作用

问题描述:

我试图设置一个功能来删除一个用户的帐户使用全有或无的交易。该函数的主要部分如下:PHP PDO多个删除查询不起作用

$success = true; 
$this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1); 
$this->db->beginTransaction(); 

try 
{ 

    if($data = $this->get_ids($account_id)){ 
     $sql = "DELETE FROM table1 WHERE [ID] IN (:loc_ids); 
      DELETE FROM table2 WHERE [ID] IN (:spid); 
     "; 
     $success = $success && $this->db->prepare($sql)->execute(array(':loc_ids' => $data['loc_ids'], ':spid' => $data['spid'])); 
    } 

    $sql = "DELETE FROM table3 WHERE [ACCOUNT_ID] = :account_id; 
     DELETE FROM table4 WHERE ([ACCOUNT_ID] = :account_id OR [USER_ID] = :user_id); 
     DELETE FROM table5 WHERE [ACCOUNT_ID] = :account_id; 
     DELETE FROM table6 WHERE [ACCOUNT_ID] = :account_id; 
     DELETE FROM table7 WHERE [ACCOUNT_ID] = :account_id; 
    "; 
    $success = $success && $this->db->prepare($sql)->execute(array(':account_id' => $account_id, ':user_id' => $uid)); 

    if(!$success){ 
     throw new Exception("Error Processing Request", 1); 
    } 

    $this->db->commit(); 
    return true; 

} 
catch (PDOException $exc) 
{ 
    echo $exc->getMessage(); 
    $this->db->rollBack(); 
    return false; 
} 

我试图把查询到单独准备的语句,但无论哪种方式,我在this screen结束。

我正在使用MAMP,并试图与MSSQL服务器进行交互。我使用的是PHP 7.06,并启用了mysqlnd。

这是由于同时执行多个查询,还是与我的MAMP-MSSQL连接有关?

这看起来像是使用存储过程的好机会。它将大大简化您的代码,并使调试更加简单。奖励:交易也可能更快。