/** * runs a query and returns the result * * @param string $query query to run * @param resource $link mysql link resource * @param integer $options query options * @param bool $cache_affected_rows whether to cache affected row * * @return mixed */ function PMA_DBI_try_query($query, $link = null, $options = 0, $cache_affected_rows = true) { if (empty($link)) { if (isset($GLOBALS['userlink'])) { $link = $GLOBALS['userlink']; } else { return false; } } if ($GLOBALS['cfg']['DBG']['sql']) { $time = microtime(true); } $result = PMA_DBI_real_query($query, $link, $options); if ($cache_affected_rows) { $GLOBALS['cached_affected_rows'] = PMA_DBI_affected_rows($link, $get_from_cache = false); } if ($GLOBALS['cfg']['DBG']['sql']) { $time = microtime(true) - $time; PMA_DBI_DBG_query($query, $link, $result, $time); } if ($result != false && PMA_Tracker::isActive() == true) { PMA_Tracker::handleQuery($query); } return $result; }
/** * runs a query and returns the result * * @param string $query query to run * @param resource $link mysql link resource * @param integer $options query options * @param bool $cache_affected_rows whether to cache affected row * * @return mixed */ function PMA_DBI_try_query($query, $link = null, $options = 0, $cache_affected_rows = true) { if (empty($link)) { if (isset($GLOBALS['userlink'])) { $link = $GLOBALS['userlink']; } else { return false; } } if ($GLOBALS['cfg']['DBG']['sql']) { $time = microtime(true); } $r = PMA_DBI_real_query($query, $link, $options); if ($cache_affected_rows) { $GLOBALS['cached_affected_rows'] = PMA_DBI_affected_rows($link, $get_from_cache = false); } if ($GLOBALS['cfg']['DBG']['sql']) { $time = microtime(true) - $time; $hash = md5($query); if (isset($_SESSION['debug']['queries'][$hash])) { $_SESSION['debug']['queries'][$hash]['count']++; } else { $_SESSION['debug']['queries'][$hash] = array(); if ($r == false) { $_SESSION['debug']['queries'][$hash]['error'] = '<b style="color:red">' . mysqli_error($link) . '</b>'; } $_SESSION['debug']['queries'][$hash]['count'] = 1; $_SESSION['debug']['queries'][$hash]['query'] = $query; $_SESSION['debug']['queries'][$hash]['time'] = $time; } $trace = array(); foreach (debug_backtrace() as $trace_step) { $trace[] = PMA_Error::relPath($trace_step['file']) . '#' . $trace_step['line'] . ': ' . (isset($trace_step['class']) ? $trace_step['class'] : '') . (isset($trace_step['type']) ? $trace_step['type'] : '') . (isset($trace_step['function']) ? $trace_step['function'] : '') . '(' . (isset($trace_step['params']) ? implode(', ', $trace_step['params']) : '') . ')'; } $_SESSION['debug']['queries'][$hash]['trace'][] = $trace; } if ($r != false && PMA_Tracker::isActive() == true) { PMA_Tracker::handleQuery($query); } return $r; }
/** * Simple test for basic query * * This relies on dummy driver internals * * @return void */ function testQuery() { $this->assertEquals(0, PMA_DBI_real_query('SELECT 1')); }