How to print SQL statement in codeigniter model
I have a sql statement in my model,
I then say
$query = $this->db->query($sql, array(fields, fields1);
if ($query) {
return true:
} else {
echo "failed";
return false;
}
My query always fails, how do I get php to print the exact sql statement being sent to my database? And display that on my php view, page
You can use this:
$this->db->last_query();
"Returns the last query that was run (the query string, not the result)."
Reff: https://www.codeigniter.com/userguide3/database/helpers.html
To display the query string:
print_r($this->db->last_query());
To display the query result:
print_r($query);
The Profiler Class will display benchmark results, queries you have run, and $_POST data at the bottom of your pages. To enable the profiler place the following line anywhere within your Controller methods:
$this->output->enable_profiler(TRUE);
Profiling user guide: https://www.codeigniter.com/user_guide/general/profiling.html
You can display the ActiveRecord generated SQL:
Before the query runs:
$this->db->_compile_select();
And after it has run:
$this->db->last_query();
if you need a quick test on your query, this works great for me
echo $this->db->last_query(); die;
After trying without success to use _compiled_select()
or get_compiled_select()
I just printed the db
object, and you can see the query there in the queries
property.
Try it yourself:
var_dump( $this->db );
If you know you have only one query, you can print it directly:
echo $this->db->queries[0];