gpt4 book ai didi

php - Codeigniter - 事务测试模式不起作用

转载 作者:行者123 更新时间:2023-12-02 17:24:46 26 4
gpt4 key购买 nike

那我做错了什么?当我运行以下代码时,即使事务处于测试模式,数据库也始终会更新。

/**
* update_batch
* This updates multiple rows. The data array must include the game_id and game_type_prize_id
* @param array
* @return bool
* @author zechdc
*/
function update_batch($data)
{
$result = TRUE;

foreach($data as $prize)
{
$this->db->trans_start(TRUE); //first param is set to TRUE for test mode.
$this->db->where('game_id', $prize['game_id']);
$this->db->where('game_type_prize_id', $prize['game_type_prize_id']);
$this->db->update('game_prizes', $prize);
$this->db->trans_complete();

if($this->db->affected_rows() == -1)
{
$result = FALSE;
}
}


return $result;
}

最佳答案

AbhishekDilliwal 在他的评论中为我们提供了答案。如果他发布答案,我将删除我的答案并接受他的答案,这样他就会获得荣誉,而不是我。

<小时/>

答案:

Codeigniter 事务测试模式当前不起作用。

<小时/>

解决方案:

替换:

$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;

与:

$this->_trans_status = ($test_mode === TRUE) ? FALSE : $this->_trans_status;

在以下 codeigniter 系统文件中:

system/database/drivers/mysql/mysql_driver.php
system/database/drivers/mysqli/mysqli_driver.php
system/database/drivers/oci8/oci8_driver.php
system/database/drivers/odbc/odbc_driver.php
system/database/drivers/postgre/postgre_driver.php
system/database/drivers/sqlite/sqlite_driver.php

看起来像rommelxcastro已提交the fix已经到 github 仓库了。现在我们只需要等待 Codeigniter 拉取它并发布新版本:)

<小时/>

来源:

关于php - Codeigniter - 事务测试模式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7438103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com