$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];
if ($globals->debug & 1) {
$trace_data['error'] = mysql_error();
$GLOBALS['XDB::trace_data'][] = $trace_data;
+ if (mysql_errno()) {
+ $GLOBALS['XDB::error'] = true;
+ }
}
return $res;
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);
}
}
// 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'));
}
{if $query.error}
<tr>
<td>
- <strong>ERROR:</strong><br />
+ <strong style="color: #f00">ERROR:</strong><br />
{$query.error|nl2br}
</td>
</tr>
{if $db_trace && $db_trace neq "\n\n"}
<div id="db-trace">
<h1>
+ {if $db_error}<span style="color: #f00">{/if}
Trace de l'exécution de cette page sur mysql (hover me)
+ {if $db_error}</span>{/if}
</h1>
<div class="hide">
{$db_trace|smarty:nodefaults}