使用Try Catch和Transact语句进行多个查询

时间:2016-02-28 18:02:27

标签: php mysql pdo

我想以交易的形式执行两个不同的查询 我描述了下表:

会员表

| member_id | name |   

members_groups表

| id | member_id | group_id |    

分组表

| group_id | group_name |  

members_groups包含来自其他两个表的两个外键

下面是代码

try{	 
    $dbh->beginTransaction();
    $stmt = $dbh->prepare("DELETE FROM `members_groups` WHERE member_id = ?");
    $stmt2 = $dbh->prepare("DELETE FROM `members` WHERE member_id = ?");

    $stmt->bindParam(1,$id , PDO::PARAM_INT);
    $stmt2->bindParam(1,$id, PDO::PARAM_INT);				  

    if($stmt->execute() && $stmt2->execute()) {
        $dbh->commit();	
        echo "registered successfully";				
    }
}
catch (Exception $e){
    $dbh->rollback();
    echo "an error has occurred";
}		  

我想从members表中删除一行,但首先我必须从members_groups表中删除子键。 当我在phpmyadmin控制台中运行sql查询时,两个查询成功运行 但是当我用php pdo运行查询时没有任何反应。

0 个答案:

没有答案