show plain database query
$db->query("INSERT INTO someTable (bla, blubb) values (?, ?)", $data);
(or any other query)
$db= Loader::db(); $db->setDebug(1);
If I add the above code it doesn't get to the second echo anymore and the system stops...if I comment it out it does. So something is wonky with this method!
Also, where would I see the SQL? In some log-file?
When I used to work with Zend_db I was able to use the __toString() method to see the query but that doesn't seem to work in C5... :-/
The method I described actually prints the statements to the screen. It looks like there is another method that will put it into a table on your dbase..
I don't know why its not working for you, maybe set the value as TRUE instead of 1? I'm just passing this along from memory, and may have screwed up the syntax.
$db = Loader::db(); $db->setDebug(true);
Just do this instead
to turn off SQL printing.
The reason this doesn't work the same is because in 5.5 and greater the object returned by Loader::db() is actually a different object than the concrete5 generic Database wrapper class.
I love Concrete5, but documentation has been severely lacking as of lately.
http://stackoverflow.com/questions/4570608/how-to-debug-mysql-doctr... pointed me in the right direction.
Then read the log at dashboard/system/optimization/query_log
Normally I'll turn on mysql logging and tail the logfile with code breakpoints but can't do that on a live server, esp when you don't have permissions to read mysql.general_log or edit the DB cnf file.
This gives me an error:
Whoops\Exception\ErrorException: call_user_func_array() expects parameter 1 to be a valid callback, class 'Concrete\Core\Database\Connection\Connection' does not have a method 'setDebug' in file /var/www/vhosts/demo-sp.redacted.com/httpdocs/updates/concrete5-8.4.2/concrete/src/Database/DatabaseManager.php on line 279
Stack trace back to my script is:
4. Concrete\Core\Support\Facade\Database->__callStatic() /var/www/vhosts/demo-sp.redacted.com/httpdocs/packages/redacted/controllers/single_page/ajax.php:281
281 ob_start(); \Database::setDebug(true);