CodeIgniter Forums
Assignment Operator := breaks the query builder - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: CodeIgniter 4 (https://forum.codeigniter.com/forumdisplay.php?fid=28)
+--- Forum: CodeIgniter 4 Support (https://forum.codeigniter.com/forumdisplay.php?fid=30)
+--- Thread: Assignment Operator := breaks the query builder (/showthread.php?tid=77915)



Assignment Operator := breaks the query builder - emmwee - 11-04-2020

I am try to create this query using the query builder

Code:
SELECT *, (@no:=@no+1) AS no FROM user WHERE user.deleted = 0
 but by using the Codeigniter 4 query builder but it returns the query as 

Code:
SELECT *, (@no:=@no+1) AS no FROM `user` WHERE `user`.`deleted` = :user.deleted:

This is the code I used to this
Code:
$this->builder = $this->db->table('user');
$this->builder->select('*, (@no:=@no+1) AS no');
$this->builder->where("user.deleted", 0);



RE: Assignment Operator := breaks the query builder - mlurie - 11-04-2020

Try adding the optional FALSE parameter to the select method documented here: https://codeigniter.com/user_guide/database/query_builder.html#selecting-data.

PHP Code:
$this->builder->select('*, (@no:=@no+1) AS no'FALSE); 

This prevents CodeIgniter from automatically escaping fields that may break your query.