/*
*/
/* SQL command ' . $sqldbg_cmdNo . ' '; if ($bSlave) echo '(slave)'; echo '*/'; echo '

'; echo '

'; if ($bSlave) echo ''; echo htmlspecialchars($sql, ENT_COMPAT, 'UTF-8'); if ($bSlave) echo ''; echo ' ;

'; echo '
/*

'; // Explains $bUseExplain = true; $sqlexplain = $sql; $usebr = false; if (mb_strtoupper(mb_substr($sqlexplain, 0, 6)) == 'ALTER ') $bUseExplain = false; else if (mb_strtoupper(mb_substr($sqlexplain, 0, 7)) == 'DELETE ') { $sqlexplain = sqldbg_strip_from($sqlexplain); } else if ((mb_strtoupper(mb_substr($sqlexplain, 0, 12)) == 'INSERT INTO ') || (mb_strtoupper(mb_substr($sqlexplain, 0, 19)) == 'INSERT IGNORE INTO ')) { $sqlexplain = sqldbg_strip_temptable($sqlexplain); if ($sqlexplain == '') $bUseExplain = false; } else if (mb_strtoupper(mb_substr($sqlexplain, 0, 7)) == 'INSERT ') $bUseExplain = false; else if (mb_strtoupper(mb_substr($sqlexplain, 0, 7)) == 'UPDATE ') $bUseExplain = false; else if (mb_strtoupper(mb_substr($sqlexplain, 0, 11)) == 'DROP TABLE ') $bUseExplain = false; else if (mb_strtoupper(mb_substr($sqlexplain, 0, 23)) == 'CREATE TEMPORARY TABLE ') { $sqlexplain = sqldbg_strip_temptable($sqlexplain); if ($sqlexplain == '') $bUseExplain = false; } if ($bUseExplain == true) { $bFirstLine = true; $nLine = 0; $rs = mysql_query($sqlexplain, $dblink); echo '
Number of selected rows: ' . mysql_num_rows($rs) . '
'; echo ''; while ($r = sql_fetch_assoc($rs)) { $usebr = true; $nLine++; if ($bFirstLine == true) { echo '' . "\n"; foreach ($r AS $field => $value) { echo '' . "\n"; } echo '' . "\n"; } if ($bFirstLine) echo ''; else echo ''; foreach ($r AS $value) { echo ''; } echo '' . "\n"; if ($nLine == 25) break; $bFirstLine = false; } echo '
' . htmlspecialchars($field, ENT_COMPAT, 'UTF-8') . '
' . htmlspecialchars(($value != null) ? $value : 'NULL', ENT_COMPAT, 'UTF-8') . '
'; mysql_free_result($rs); echo ''; $bFirstLine = true; $rs = mysql_query('EXPLAIN EXTENDED ' . $sqlexplain); while ($r = sql_fetch_assoc($rs)) { if ($bFirstLine == true) { echo ''; foreach ($r AS $field => $value) { echo ''; } echo '' . "\n"; $bFirstLine = false; } echo ''; foreach ($r AS $value) { echo ''; } echo '' . "\n"; } echo '
' . htmlspecialchars($field, ENT_COMPAT, 'UTF-8') . '
' . htmlspecialchars(($value != null) ? mb_ereg_replace('\*/', '* /', $value) : 'NULL', ENT_COMPAT, 'UTF-8') . '
'; $usebr = true; } // dont use query cache! $sql = sqldbg_insert_nocache($sql); $bSqlExecution = new Cbench; $bSqlExecution->start(); $rsResult = mysql_query($sql, $dblink); $bError = ($rsResult == false); $bSqlExecution->stop(); $sqldbg_sumTimes += $bSqlExecution->Diff(); if ($bError == true) { echo '
Error while executing SQL command!
'; echo '
'; echo ''; $rs = mysql_query('SHOW WARNINGS', $dblink); while ($r = sql_fetch_assoc($rs)) echo ''; echo '
' . htmlspecialchars($r['Message'], ENT_COMPAT, 'UTF-8') . '
'; echo '
'; } echo '
Runtime: ' . sprintf('%01.5f', $bSqlExecution->Diff()) . ' sek.
'; echo '
Number of affected rows: ' . mysql_affected_rows($dblink) . '
'; echo '
*/
'; return $rsResult; } function sqldbg_end() { global $sqldbg_sumTimes; echo '/*

'; echo 'Runtime sum: ' . sprintf('%01.5f', $sqldbg_sumTimes) . ' sek.*/
'; echo ''; exit; } function sqldbg_strip_temptable($sql) { $start = mb_strpos(mb_strtoupper($sql), 'SELECT '); if ($start === false) return ''; return mb_substr($sql, $start); } function sqldbg_strip_from($sql) { $start = mb_strpos(mb_strtoupper($sql), 'FROM '); if ($start === false) return ''; return 'SELECT * ' . mb_substr($sql, $start); } function sqldbg_insert_nocache($sql) { if (mb_strtoupper(mb_substr($sql, 0, 7)) == 'SELECT ') $sql = 'SELECT SQL_NO_CACHE ' . mb_substr($sql, 7); return $sql; } ?>