У нас есть большое приложение php и попытка отладки медленных запросов sql, мы хотели бы иметь возможность автоматически комментировать, какой файл на самом деле называется SQL-запросом , что-то вроде:PHP, комментарий Auto SQL, отладка базы данных и строка под названием sql
"select /* filename.php line 234*/ `ID`,`Email`, `NickName`, `AlertBusiness`,`City` from People where ?=? and limit ?,?"
где/* filename.php строка 234 */вставлена динамически. Возможно
В PHP есть debug_backtrace, http://php.net/manual/en/function.debug-print-backtrace.php
Что может сделать это вручную:
<?php
$query = sprintf("INSERT INTO EventLog (Trace) VALUES ('%s')",
mysql_real_escape_string(join("\n", debug_backtrace())));
mysql_query($query);
?>
Но надеялся на что-то более центральной, как в драйвере дб.
MediaWiki имеет аналогичную функцию. http://www.mediawiki.org/wiki/Manual:How_to_debug
You can also enable backtrace on SQL error by setting $wgShowDBErrorBacktrace:
$wgShowDBErrorBacktrace = true;"
драйвер PDO имеет разгрузочный заявление, но это только вопрос, не назвавший его http://php.net/manual/en/pdostatement.debugdumpparams.php
Как вам лучше отладки SQL в контексте страницы PHP запустить его?
_ «MediaWiki имеет аналогичную функцию» _ - вполне уверен, что они реализованы так же «вручную», как в вашем первом примере ... – CBroe
Посмотрите на этот вопрос и ответы http://stackoverflow.com/q/4777517/ –
Вы можете написать свой собственный класс базы данных, который вызывает PDO, после обработки запросов. – Barmar