Предполагая, что у вас нет доступа к общему журналу запросов mysql, если вы находитесь на общем хосте и не можете изменить файл my.cnf базы данных, вы можете составить следующую функцию:
function dbInsertQuery($query, $conn) {
$logFile = "/path/to/file.txt";
$isProd = FALSE;
// run your security checks on the query here
$mysql_query($query, $db_connection) or trigger_error(mysql_error());
if (!$isProd && is_writable($logFile)) {
if (!handle = fopen($logFile, 'a')) {
echo "cannot open dbInsertQuery's log file: " . $logFile;
exit;
}
$logLine = date(DATE_RFC822) . " - " . $query;
if (fwrite($handle, $logLine) === FALSE) {
echo "cannot write to dbInsertQuery's log file: " . $logFile;
exit;
}
fclose($handle);
}
}
Это позволит вам записывать все ваши запросы в файл журнала. Я установил переменную $isProd
, чтобы вы переключались на разработку, и если для нее установлено значение TRUE
, она не будет регистрироваться в файле и полностью пропустит процесс who fopen. Возможно, вам придется настроить его и даже заставить его выполнять каждый запрос, а не просто вставлять, если хотите.