使用第二个可选参数选择数据

通常我们在 CodeIgniter 中的 select([$select = '*'[, $escape = NULL]]) 中没有使用第二个参数。如果将其设置为 FALSE,CodeIgniter 将不会尝试保护你的字段或表名称。

在下面的示例中,我们将通过使用 sql 查询对其进行格式化来选择日期时间类型字段并将其设置为 FALSE(通过这样做,我们将告诉 CI 不要自动转义查询)。

public function getUserInfo($id)
{
    $this->db->select('BaseTbl.id, BaseTbl.name, DATE_FORMAT(BaseTbl.createdDtm, "%d-%m-%Y") AS createdDtm', FALSE); // FALSE is the second optional parameter
    $this->db->from('tbl_users as BaseTbl');
    $this->db->where('isDeleted', 0);
    $this->db->where('BaseTbl.id', $id);
    $query = $this->db->get();
            
    return $query->result();
}

如果我们没有将它设置为 FALSE,它将自动转义并中断查询。