phpcodeigniteractiverecordescapingsql-function

Using GROUP_CONCAT() in the SELECT clause of a CodeIgniter active record script creates an invalid query


I have:

$this->db->select('GROUP_CONCAT(prod_poster, poster2, poster3, poster4, poster5, poster6, poster7)');

And I have error for this and shows sql query:

SELECT GROUP_CONCAT(prod_poster, `poster2`, `poster3`, `poster4`, `poster5`, `poster6`, `poster7)`

it's a problem because of ->>>> ` near poster7. this symbol must be inside bracket. whyc codeigniter do like this? and how to fix it?


Solution

  • Try doing:

    $this->db->select('GROUP_CONCAT(prod_poster, poster2, poster3, poster4, poster5, poster6, poster7)', false);
    

    If you pass false as the second argument of select(), it won't try to protect your query by adding in backticks (like it has in your example).

    See: https://codeigniter.com/userguide2/database/active_record.html#select