从codeigniter 2中的like函数中删除反转的逗号

时间:2016-03-02 12:57:10

标签: php sql postgresql codeigniter

我正在使用PostgreSQL数据库。使用codeigniter之类的函数创建搜索查询。

  

$ this-> db->($ colName。" :: text",$ value) - > get(" datatables_demo");

SELECT * FROM "datatables_demo" WHERE  "first_name::text" like '%co%'

但是在PostgreSQL中显示错误,我想要输出

 SELECT * FROM "datatables_demo" WHERE  first_name::text like '%co%'

codeigniter中是否有任何选项可以从like函数中删除反转的逗号 我试图在3 rd 参数false

中发送false
$this->db->($colName."::text", $value, false)

使用类似功能

提供解决此问题的任何选项
  

查询:SELECT * FROM" datatables_demo" WHERE" salary :: text"喜欢   '%320%' ESCAPE'!'

When i run this query in postgresql 
ERROR:  column "salary::text" does not exist
LINE 1: SELECT * FROM "datatables_demo" WHERE  "salary::text"  LIKE ...
                                               ^
********** Error **********

ERROR: column "salary::text" does not exist
SQL state: 42703
Character: 40

但是当我从列中删除倒置的逗号时,它会返回结果succuessfully

  

SELECT * FROM" datatables_demo"在哪里薪水::文字喜欢'%320%'   ESCAPE'!'

2 个答案:

答案 0 :(得分:3)

如果你认为sql喜欢函数 试试这个。

$sql = ('SELECT * FROM datatables_demo WHERE salary::text LIKE ?');
$query = $this->db->query($sql, array($value . '%'));

答案 1 :(得分:0)

我认为在codeigniter2中,PostgreSql驱动程序具有类似运算符的先前版本代码。 如果你想使用codeigniter之类的函数构建查询,你必须在codeigniter系统数据库库中进行一些更改 我在这条路上给你改变

  

系统\数据库\驱动\ postgre \ postgre_driver.php

第36行

func sha256(data:String) -> String {
        let data = self.dataUsingEncoding(NSUTF8StringEncoding)!
        var digest = [UInt8](count:Int(CC_SHA256_DIGEST_LENGTH), repeatedValue: 0)
        CC_SHA256(data.bytes, CC_LONG(data.length), &digest)
        let hexBytes = digest.map { String(format: "%02hhx", $0) }
        return hexBytes.joinWithSeparator("")
    }

替换为

var $_escape_char = '"';

您的查询输出与您预期的相同o / p 最好的运气