0

我有以下查询,当它由我的 PHP 代码启动时它不起作用:

$sql = 'START TRANSACTION;
        DELETE FROM task_actions
            WHERE task_id='.$id.';
        DELETE FROM tasks
            WHERE id='.$id.';
        COMMIT;
       ';

当我echo $sql将输出直接放入 phpMyAdmin 时,它可以正常工作;当我分两步而不是一个事务完成它时,它也可以从我的 PHP 代码中运行。

我首先认为 MySQL 可能不允许事务,但stackoverflow.com/questions/2050310stackoverflow.com/questions/2960012表明这是错误的。

我发现我可以禁用自动提交,同时执行查询并重新激活自动提交(stackoverflow.com/a/17607619stackoverflow.com/a/12092151),但我不希望这样做。

任何想法为什么它不起作用?

4

1 回答 1

1
$sql = 'START TRANSACTION';
// run this query
$sql = 'DELETE FROM task_actions WHERE task_id=?';
// run this query
$sql = 'DELETE FROM tasks WHERE id=?';
// run this query
$sql = 'COMMIT';
// finally run this one
于 2013-10-29T21:29:09.307 回答