php - Codeigniter 按时间排序 - 查询生成

标签 php mysql codeigniter

我实际上需要一个类似 mysql 的查询

SELECT *, CONCAT(pri_hours, ':', pri_minutes, ' ', IF(pri_ampm = 1, 'am', 'pm')) as hr FROM (`sms_primary`)  ORDER BY STR_TO_DATE(hr, '%h:%i %p')

当我使用 codeigniter 时,我编写了如下查询

       $this->db->select("*,CONCAT(pri_hours,':', pri_minutes,' ',IF(pri_ampm = 1,'am','pm')) as hr",FALSE);
       $this->db->from('sms_primary');
       $this->db->order_by("STR_TO_DATE(hr,'%h:%i %p')");

但我没有得到预期的查询,我得到的如下所示

SELECT *, CONCAT(pri_hours, ':', pri_minutes, ' ', IF(pri_ampm = 1, 'am', 'pm')) as hr FROM (`sms_primary`) ORDER BY STR_TO_DATE(hr, `'%h:%i` %p') 

我希望您能找出生成的查询中的差异。它注入(inject)了一些不需要的运算符`。我只想删除它。如何删除?

改变

STR_TO_DATE(hr, `'%h:%i` %p') 

 STR_TO_DATE(hr, '%h:%i %p')

最佳答案

codeigniter 正在添加反引号。在查询之前使用它

$this->db->_protect_identifiers=false; 

希望对你有帮助

关于php - Codeigniter 按时间排序 - 查询生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29316318/

相关文章:

php - codeigniter 重复 FOREACH

php - 如何在 Kohana 中使用 MongoDB?

php - 第一次尝试 Laravel undefined variable

php - 如何使用codeigniter中的mysql编码功能插入数据

php - 通过 PHP 表单进行 FTP 上传

php - 如何在 Magento 数据库中存储日期时间值?

php - PHP MySQL 加入帮助

c++ - 尝试将远程 MySQL 数据库连接到 Visual Studio 2010 Pro (C++)

Python MYSQL 插入问题 : not enough arguments for format string

php - 使用 codeigniter 的 payfast 支付网关集成