ODBC and LIKE gives weird query |
Hi,
I'm trying to make a simple query in Codigniter v3.0.0 like this: PHP Code: $this->db->select("cats"); And then show it: PHP Code: echo $this->db->get_compiled_select(); Result: Quote:SELECT cats FROM pets WHERE name LIKE 'a%' {escape '!'} For some reason CI adds {escape '!'} at the end. Which of course generates an error when I try to run the query. Database config: PHP Code: $db['pyramid'] = array( I have tried to change the file system/database/drivers/odbc/odbc_driver.php like this: PHP Code: //protected $_like_escape_str = " {escape '%s'} "; Original It seems to escape as it should, but I'm not sure if something else depends on this. Is this a bug or is it just me that don't know how to use it properly? ![]() Does anyone know how to fix this?
You may want to try upgrading to 3.0.4, as there were a few fixes to the database library in each version since 3.0. As far as I can tell, the output should look something like the following:
Code: SELECT cats FROM pets WHERE name LIKE 'a!%' {escape '!'} For reference: https://msdn.microsoft.com/en-us/library...85%29.aspx (02-16-2016, 02:55 PM)mwhitney Wrote: You may want to try upgrading to 3.0.4, as there were a few fixes to the database library in each version since 3.0. As far as I can tell, the output should look something like the following: Thank you for your response! I have now upgraded to 3.0.4 but still no luck. I also tried this: Code: $this->db->where("name LIKE '" . $this->db->escape_like_str('a%') . "' {escape '!'}", NULL, FALSE); and Code: $this->db->where("name LIKE '" . $this->db->escape_like_str('a') . "%' {escape '!'}", NULL, FALSE); Both of these give me a database syntax error (as before). It doesn't seems to accept the {escape '!'} part. Could it be due to the fact that there is a Pervasive database? |
Welcome Guest, Not a member yet? Register Sign In |