如何在wordpress中使用mysql事务?

时间:2013-10-03 08:09:47

标签: php mysql wordpress

如何在wordpress中使用mysql事务?我想删除10个子节点,如果有一个是活动的,则总删除将是回滚。

1 个答案:

答案 0 :(得分:22)

我从来没有尝试过,也没有什么特别的,但它只是运行一个查询(在START TRANSACTION之后运行您的查询并使用COMMIT或{{1取决于结果):

ROLLBACK

因此,它可以使用类似的东西转换为wordpress

mysql_query('START TRANSACTION');
$res1 = mysql_query('query1');
$res2 = mysql_query('query2');
If ( $res1 && $res2 ) {
    mysql_query('COMMIT'); // commits all queries
} else {
    mysql_query('ROLLBACK'); // rollbacks everything
}

您也可以使用$wpdb->query('START TRANSACTION'); $result1 = $wpdb->delete( $table, $where, $where_format = null ); $resul2 = $wpdb->delete( $table, $where, $where_format = null ); if($result1 && $result2) { $wpdb->query('COMMIT'); // if you come here then well done } else { $wpdb->query('ROLLBACK'); // // something went wrong, Rollback } 之类的try catch,(不是WordPress,但同样的想法)。您可以在this answer上详细了解$wpdb查询函数(querydelete)。

  

MySQL的默认MyISAM存储引擎不支持事务,   所以这不是一个选择。如果您想使用交易,请确保所有交易   你的表被定义为InnoDB。