0

我有一个使用 jQuery 的 AJAX 调用,它调用一个 PHP 脚本,然后将一些 JSON 格式的信息返回给successorerror函数,如下所示:

$.ajax({
    url: 'crud/clients.php',
    dataType: 'json',
    type: 'POST',
    data: {
        oper:'add'
        ,id:''
        ,clientID:$('#clientID_add').val()
    },
    async: false,
    success: function(data){
        alert(data.errorsExist);
    },
    error: function(data){
        alert(data.appError);
    }
});

这是被调用的 PHP 脚本:

try {
                // Begin a transaction, turning off autocommit
                $dbh->beginTransaction(); 

                // Client INSERT
                $sthClients->execute($crudColumnValues);
                // Get the ID from the client we just INSERTED
                $lastInsertID = $dbh->lastInsertId();

                // Activity INSERT
                $sthActivity->execute();

                // commit the queries
                $dbh->commit();
            } 
            catch (PDOException $e) {
                // Close the connection
                $dbh = null;
                // Echo back JSON
                echo '{"appError": "'.$e->getMessage().'", "errorsExist":"Y"}';
                // rollback the transaction
                $testing = $dbh->rollBack();

                exit();
            }

当我在 IDE 中测试错误处理和调试代码时,PHP 文件在rollBack();调用处停止,并且我的 JSON 在回滚后永远不会回显到我的 AJAX 调用中。

有什么方法可以在调用 a 时将该 JSON 返回到我的 AJAX 函数rollBack

4

1 回答 1

3

可能是因为这个:

// Close the connection
$dbh = null;
.....
$testing = $dbh->rollBack(); // $dbh is null
于 2012-09-19T18:43:08.373 回答