From eadff9f9c4e29a4e31f06d65303d640bc7cdc5d0 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Sun, 13 Aug 2006 12:32:17 +0000 Subject: [PATCH] Fix a query SQL backtrace 'hover-me' becomes red in case of sql error git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@810 839d8a87-29fc-0310-9880-83ba4fa771e5 --- classes/XDB.php | 6 +++++- modules/events.php | 9 +++++---- templates/database-debug.tpl | 2 +- templates/skin/common.devel.tpl | 2 ++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/classes/XDB.php b/classes/XDB.php index edcbed6..299f468 100644 --- a/classes/XDB.php +++ b/classes/XDB.php @@ -40,7 +40,7 @@ class XDB $length = 0; foreach ($query as $key=>$line) { $local = -2; - if (preg_match('/^([A-Z]+(?:\s+(?:JOIN|BY))?)\s+(.*)/', $line, $matches) + if (preg_match('/^([A-Z]+(?:\s+(?:JOIN|BY|FROM|INTO))?)\s+(.*)/', $line, $matches) && $matches[1] != 'AND' && $matches[1] != 'OR') { $local = strlen($matches[1]); $line = $matches[1] . ' ' . $matches[2]; @@ -79,6 +79,9 @@ class XDB if ($globals->debug & 1) { $trace_data['error'] = mysql_error(); $GLOBALS['XDB::trace_data'][] = $trace_data; + if (mysql_errno()) { + $GLOBALS['XDB::error'] = true; + } } return $res; @@ -157,6 +160,7 @@ class XDB function trace_format(&$page, $template = 'database-debug.tpl') { $page->assign('trace_data', $GLOBALS['XDB::trace_data']); + $page->assign('db_error', $GLOBALS['XDB::error']); return $page->fetch($template); } } diff --git a/modules/events.php b/modules/events.php index 2fba18a..35fe2e9 100644 --- a/modules/events.php +++ b/modules/events.php @@ -109,16 +109,17 @@ class EventsModule extends PLModule // cache les evenements lus et raffiche les evenements a relire if ($action == 'read' && $eid) { - XDB::execute('DELETE FROM evenements_vus AS ev - INNER JOIN evenements AS e ON e.id = ev.evt_id - WHERE peremption < NOW)'); + XDB::execute('DELETE evenements_vus.* + FROM evenements_vus AS ev + INNER JOIN evenements AS e ON e.id = ev.evt_id + WHERE peremption < NOW()'); XDB::execute('REPLACE INTO evenements_vus VALUES({?},{?})', $eid, S::v('uid')); } if ($action == 'unread' && $eid) { XDB::execute('DELETE FROM evenements_vus - WHERE evt_id = {?} AND user_id = {?}', + WHERE evt_id = {?} AND user_id = {?}', $eid, S::v('uid')); } diff --git a/templates/database-debug.tpl b/templates/database-debug.tpl index bf6d610..944ad65 100644 --- a/templates/database-debug.tpl +++ b/templates/database-debug.tpl @@ -33,7 +33,7 @@ {if $query.error} - ERROR:
+ ERROR:
{$query.error|nl2br} diff --git a/templates/skin/common.devel.tpl b/templates/skin/common.devel.tpl index 209690f..750f036 100644 --- a/templates/skin/common.devel.tpl +++ b/templates/skin/common.devel.tpl @@ -24,7 +24,9 @@ {if $db_trace && $db_trace neq "\n\n"}

+ {if $db_error}{/if} Trace de l'exécution de cette page sur mysql (hover me) + {if $db_error}{/if}

{$db_trace|smarty:nodefaults} -- 2.1.4