首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter正在以日期格式在sql查询中自动添加反引号(``) /代字号符号

Codeigniter正在以日期格式在sql查询中自动添加反引号(``) /代字号符号
EN

Stack Overflow用户
提问于 2018-03-28 13:09:30
回答 3查看 789关注 0票数 0

**反记号(代字号)正在Codeigniter的sql查询中自动添加内部日期格式:**

代码语言:javascript
复制
$this->db->select("DISTINCT(b.dname),DATE_FORMAT(atime,' %d %M %Y 
%h:%i:%s') as at");
$this->db->join('rb b','b.list_id = al.afid','LEFT');
$this->db->from('rfal al');
$this->db->where('al.afid ='.$fileid);
$this->db->where('al.is_back',1);
$this->db->order_by('at','DESC');
$this->db->limit(5);
$query= $this->db->get();

**Will Get an error as follows**  
You have an error in your SQL syntax; check the manual that   
corresponds to your MySQL server version for the right syntax to use   
near ':%i:%s') as accessed_time FROM (`rfal` al) LEFT JOIN  at line 1  

SELECT DISTINCT(b.dname), DATE_FORMAT(atime, `'` %d %M %Y %h:%i:%s')   
as at FROM (`rfal` al) LEFT JOIN `rb` b ON `b`.`l_id` =   
`al`.`afid` WHERE `al`.`afid` =1106 AND `al`.`is_back` = 1 ORDER BY     
`at` DESC LIMIT 5  
EN

回答 3

Stack Overflow用户

发布于 2018-03-28 13:35:29

另一个解决方案

从文档中:

$this->db->select()接受第二个可选参数。如果您将其设置为FALSE,CodeIgniter将不会尝试使用反号保护您的字段或表名。如果您需要复合select语句,这将非常有用。

票数 2
EN

Stack Overflow用户

发布于 2018-03-28 13:11:32

在查询之前尝试这一行:

代码语言:javascript
复制
$this->db->_protect_identifiers=false; 

请注意,这将删除此查询上的所有反引号

票数 0
EN

Stack Overflow用户

发布于 2018-03-28 13:24:21

解决方案如下:

在数据库配置文件./application/config/database.php中,使用默认设置向数组添加一个新元素。

代码语言:javascript
复制
$db['default']['_protect_identifiers']= FALSE;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49526520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档