Welcome Guest, Not a member yet? Register   Sign In
Round brackets issue in Codeigniter
#1

(This post was last modified: 03-10-2018, 06:12 AM by ciadmin. Edit Reason: SEO link redacted )

Hi,

I am working on Codeigniter project, I need to migrate whole database MySQL to SQL server, for that I am getting an issue in select query, I can see in SQL server round brackets are not supported around the table name, here is my Codeigniter query

$this->db->_protect_identifiers=false;
$this->db->select('*')->from('tb_card',false);
$this->db->where('company_id',$this->company_id,FALSE)->get()->row_array();
This select query generates below query

SELECT * FROM (tb_card) WHERE company_id = 27

You can see there are round brackets around the table name, I want to remove this, can anyone please help me to resolve this issue?

Thank you
Reply
#2

And what do get doing it this way?

PHP Code:
$this->db->_protect_identifiers false;

$query $this->db->where('company_id'$this->company_idFALSE)
 
   ->get('tb_card')
 
   ->row_array(); 

Do you get the same output?

If so you could use the database query method and build your own sql select statement.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#3

(This post was last modified: 01-29-2023, 11:41 PM by jamesmillere.)

The issue you are facing is because the Codeigniter query builder is adding round brackets around the table name by default. To prevent this, you can set the "_protect_identifiers" property to false before running the query. Additionally, you can pass "false" as the second parameter to the "from()" method to prevent the table name from being enclosed in brackets. The modified query would look like this:

$this->db->_protect_identifiers = false;
$this->db->select('*')->from('tb_card', false);
$this->db->where('company_id', $this->company_id, FALSE)->get()->row_array();

This should generate the correct query for MySQL and SQL Server.

But, yes if we compare it with the python you can find more similarities in it.
Reply
#4

Hello
To remove the round brackets around the table name in your CodeIgniter query, modify your code by removing the get() method inside the where() method and adding the table name directly in the get() method. Here's the modified code:

php
Copy code
$this->db->_protect_identifiers = false;
$this->db->select('*')->from('tb_card', false);
$this->db->where('company_id', $this->company_id, false);
$this->db->get('tb_card')->row_array();

This will generate the query without the round brackets around the table name.

Thank you.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB