我正在使用PostgreSQL
数据库。 使用类似代码点火器的功能创建搜索查询。
$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%'
代码点火器中是否有任何选项可以从类似功能中删除倒逗号我试图在第三个参数中发送假 假
$this->db->($colName."::text", $value, false)
提供任何选项来使用like函数解决此问题
查询:从"datatables_demo"中选择 *,其中"薪水::文本"喜欢 '%320%'逃跑'!"
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
但是当我从列中删除倒逗号时,它会成功返回结果
从"datatables_demo"中选择 *,其中工资::文本类似 '%320%' 逃'!
如果你想到像sql一样的函数试试这个。
$sql = ('SELECT * FROM datatables_demo WHERE salary::text LIKE ?');
$query = $this->db->query($sql, array($value . '%'));
我认为
在codeigniter2中PostgreSQL驱动程序具有类似于运算符以前的版本代码。如果你想使用代码点火器之类的函数来构建查询,你必须在代码点火器系统数据库库中进行一些更改我给你改变这条路
系统''数据库''驱动程序''邮政postgre_driver.php
第 36 行
var $_escape_char = '"';
替换为
var $_escape_char = '';
您的查询输出与预期的 o/p 相同祝你好运