【问题标题】:Codeigniter error to execute update command in oracle database. DB_driver.php, Line Number: 330在 oracle 数据库中执行更新命令的 Codeigniter 错误。 DB_driver.php,行号:330
【发布时间】:2026-01-20 12:35:01
【问题描述】:

当我要从 codeigniter 更新我在 oracle db 中的表时,我收到一个错误,

错误编号: 更新机器人套装 STATUS='y',TERMINAL='fazlay-pc',SLNO='101',REGNO='36' BOAC='1204260035198795';文件名: C:\xampp\htdocs\agm_ci\system\database\DB_driver.php 行号:330

然而我的项目正在顺利地从这个表中执行 SELECT 命令。

这是我的模型函数.....

public function updateStatus($data)
{
    $update_data['regno'] = $data['regno'];
    $update_data['attendence'] = $data['attendence'];
    $update_data['terminal'] = $data['terminal'];
    $update_data['slno'] = $data['slno'];
    $update_data['index'] = $data['index'];

    $query = $this -> db -> query("UPDATE BOTAB SET STATUS='".$update_data['attendence']."',TERMINAL='".$update_data['terminal']."',SLNO='".$update_data['slno']."',REGNO='".$update_data['regno']."'  
    WHERE BOAC='".$update_data['index']."'; ");
}

我的db配置如下.....

$db['default']['hostname'] = $tnsname;
$db['default']['username'] = 'XXXXX';
$db['default']['password'] = 'XXXXX';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

提前致谢。

【问题讨论】:

    标签: php oracle codeigniter


    【解决方案1】:

    为什么不使用内置更新功能的codeigniter。
    它可能对你有用

        $update_data['STATUS']=$data['attendence'];
        $update_data['TERMINAL']=$data['terminal'];
        $update_data['SLNO']=$data['slno'];
        $update_data['REGNO']=$data['regno'];
    
        $this->db->where('BOAC',$data['index']);
        $this->db->update('BOTAB',$update_data);
    

    【讨论】: