提问人:alvaro237 提问时间:7/17/2021 最后编辑:hakrealvaro237 更新时间:10/27/2022 访问量:362
在 Codeigniter 4 中添加 mysqli 选项
Add mysqli options in Codeigniter 4
问:
我的数据库中有几个字段是 DECIMAL(10,2) 或 INT 值,当我返回结果时,所有内容都以字符串形式返回。
例:
$sql = "SELECT id, operacion_id FROM operaciones";
$query = $this->db->query($sql);
$result = $query->getResultArray();
return $this->response->setStatusCode(200)
->setContentType('application/json')
->setJSON($result);
这返回:
[{
"id": "31",
"operacion_id": "ES-2021-0031"
},
{
"id": "30",
"operacion_id": "ES-2021-0030"
}]
我尝试直接放入 system\Database\MySQLi\Connection.php connect() 方法:
$this->mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true);
这很好用,但我知道它升级不安全。
答:
1赞
Dharman
7/18/2021
#1
您应该能够将此选项应用于数据库对象的属性。mysqli
// run this after your DB connection has been initialized
$this->db->mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true);
// and then run your queries
$query = $this->db->query($sql);
使用预准备语句时,不必应用此设置,因为预准备语句始终以正确的类型返回数据。
评论