我正在使用Codeigniter框架来更新数据库中的数据,并在使用Codeigniter核心数据库功能(例如$this->db->update()
(时出现以下故障。但是,如果我使用普通的SQL查询,它工作正常。
类型:错误 消息:在布尔值上调用成员函数 escape_str(( 文件名: D:\xampp\htdocs\code\system\database\drivers\mysqli\mysqli_driver.php 行号:393
我的型号代码:
public function updatePolicy($data, $pid)
{
$this->db->where("id",$pid);
$res = $this->db->update('tablename', $data);
if ($res)
return true;
else
return false;
}
我的$data数组:
Array
(
[agent_id] => 659
[finace_company] => 23
[vehicle_type] => 4
[policy_month] => 2019-12-18
[policy_number] => 3005/189/00/B00
[name] => TEST
[reg_number] => HR24Ab8585
[proposal] =>
[attachment] =>
[attachment2] =>
[payment_mode_agent] => online
[od_premium] => 1577.00
[comments] => 24
[branch] => 6
[smId] => 12
[frenchise] => 15
[rejectStatus] => 0
)
当我用policy_number更改reg_number时,它已成功更新。
这可能意味着您的数据库连接已失败或从未尝试过。 尝试在应用程序>配置>数据库中创建另一个数据库.php
$db['another'] = array(
'dsn' => '',
'hostname' => 'host',
'username' => 'username',
'password' => 'password',
'database' => 'dbname',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
public function updatePolicy($data, $pid)
{
$this->legacy_db = $this->load->database('another', true);
$this->legacy_db->where("id",$pid);
$res = $this->legacy_db->update('tablename', $data);
if ($res)
return true;
else
return false;
}
希望这对你有用。