[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_4_2RC1-3154-g4603ca7

Michal Čihař nijel at users.sourceforge.net
Mon Jun 6 14:04:14 CEST 2011


The branch, master has been updated
       via  4603ca7001b1d39389f622671e53ee957b2adf66 (commit)
      from  d14e49f8271c25b11cdc98962e6b24338aaef90e (commit)


- Log -----------------------------------------------------------------
commit 4603ca7001b1d39389f622671e53ee957b2adf66
Author: Michal Čihař <mcihar at novell.com>
Date:   Mon Jun 6 14:03:13 2011 +0200

    Factor out common code for PMA_DBI_try_query.
    
    PMA_DBI_try_query is now shared for mysql and mysqli as the only
    difference there was real call to the database, the rest was same
    (timing, tracking, debugging,..).

-----------------------------------------------------------------------

Summary of changes:
 libraries/database_interface.lib.php |   64 +++++++++++++++++++++++++++++++
 libraries/dbi/mysql.dbi.lib.php      |   60 ++--------------------------
 libraries/dbi/mysqli.dbi.lib.php     |   70 ++-------------------------------
 3 files changed, 74 insertions(+), 120 deletions(-)

diff --git a/libraries/database_interface.lib.php b/libraries/database_interface.lib.php
index 57c8568..ec82416 100644
--- a/libraries/database_interface.lib.php
+++ b/libraries/database_interface.lib.php
@@ -76,6 +76,70 @@ function PMA_DBI_query($query, $link = null, $options = 0, $cache_affected_rows
 }
 
 /**
+ * runs a query and returns the result
+ *
+ * @param string $query query to run
+ * @param resource $link mysql link resource
+ * @param integer $options
+ * @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();
+            $_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['object']) ? get_class($trace_step['object']) : '')
+                . (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;
+}
+
+/**
  * converts charset of a mysql message, usually coming from mysql_error(),
  * into PMA charset, usally UTF-8
  * uses language to charset mapping from mysql/share/errmsg.txt
diff --git a/libraries/dbi/mysql.dbi.lib.php b/libraries/dbi/mysql.dbi.lib.php
index e96e167..e84e6b0 100644
--- a/libraries/dbi/mysql.dbi.lib.php
+++ b/libraries/dbi/mysql.dbi.lib.php
@@ -154,65 +154,15 @@ function PMA_DBI_select_db($dbname, $link = null)
  * @param integer $options
  * @return mixed
  */
-function PMA_DBI_try_query($query, $link = null, $options = 0, $cache_affected_rows = true)
+function PMA_DBI_real_query($query, $link, $options)
 {
-    if (empty($link)) {
-        if (isset($GLOBALS['userlink'])) {
-            $link = $GLOBALS['userlink'];
-        } else {
-            return false;
-        }
-    }
-
-    if ($GLOBALS['cfg']['DBG']['sql']) {
-        $time = microtime(true);
-    }
     if ($options == ($options | PMA_DBI_QUERY_STORE)) {
-        $r = mysql_query($query, $link);
+        return mysql_query($query, $link);
     } elseif ($options == ($options | PMA_DBI_QUERY_UNBUFFERED)) {
-        $r = mysql_unbuffered_query($query, $link);
+        return mysql_unbuffered_query($query, $link);
     } else {
-        $r = mysql_query($query, $link);
-    }
-
-    if ($cache_affected_rows) { 
-       $GLOBALS['cached_affected_rows'] = PMA_DBI_affected_rows($link, $get_from_cache = false); 
+        return mysql_query($query, $link);
     }
-
-    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();
-            $_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['object']) ? get_class($trace_step['object']) : '')
-                . (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;
 }
 
 function PMA_DBI_fetch_array($result)
@@ -406,7 +356,7 @@ function PMA_DBI_insert_id($link = null)
  * @uses    $GLOBALS['userlink']
  * @uses    mysql_affected_rows()
  * @param   object mysql   $link   the mysql object
- * @param   boolean        $get_from_cache 
+ * @param   boolean        $get_from_cache
  * @return  string integer
  */
 function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
diff --git a/libraries/dbi/mysqli.dbi.lib.php b/libraries/dbi/mysqli.dbi.lib.php
index a40e32d..2418fd2 100644
--- a/libraries/dbi/mysqli.dbi.lib.php
+++ b/libraries/dbi/mysqli.dbi.lib.php
@@ -164,18 +164,15 @@ function PMA_DBI_select_db($dbname, $link = null)
  *
  * @uses    PMA_DBI_QUERY_STORE
  * @uses    PMA_DBI_QUERY_UNBUFFERED
- * @uses    $GLOBALS['userlink']
  * @uses    MYSQLI_STORE_RESULT
  * @uses    MYSQLI_USE_RESULT
  * @uses    mysqli_query()
- * @uses    defined()
  * @param   string          $query      query to execute
  * @param   object mysqli   $link       mysqli object
  * @param   integer         $options
- * @param   boolean         $cache_affected_rows
  * @return  mixed           true, false or result object
  */
-function PMA_DBI_try_query($query, $link = null, $options = 0, $cache_affected_rows = true)
+function PMA_DBI_real_query($query, $link, $options)
 {
     if ($options == ($options | PMA_DBI_QUERY_STORE)) {
         $method = MYSQLI_STORE_RESULT;
@@ -185,64 +182,7 @@ function PMA_DBI_try_query($query, $link = null, $options = 0, $cache_affected_r
         $method = 0;
     }
 
-    if (empty($link)) {
-        if (isset($GLOBALS['userlink'])) {
-            $link = $GLOBALS['userlink'];
-        } else {
-            return false;
-        }
-    }
-
-    if ($GLOBALS['cfg']['DBG']['sql']) {
-        $time = microtime(true);
-    }
-    $r = mysqli_query($link, $query, $method);
-
-    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();
-            $_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['object']) ? get_class($trace_step['object']) : '')
-                . (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;
-
-    // From the PHP manual:
-    // "note: returns true on success or false on failure. For SELECT,
-    // SHOW, DESCRIBE or EXPLAIN, mysqli_query() will return a result object"
-    // so, do not use the return value to feed mysqli_num_rows() if it's
-    // a boolean
+    return mysqli_query($link, $query, $method);
 }
 
 /**
@@ -452,9 +392,9 @@ function PMA_DBI_insert_id($link = '')
             return false;
         }
     }
-    // When no controluser is defined, using mysqli_insert_id($link) 
+    // When no controluser is defined, using mysqli_insert_id($link)
     // does not always return the last insert id due to a mixup with
-    // the tracking mechanism, but this works: 
+    // the tracking mechanism, but this works:
     return PMA_DBI_fetch_value('SELECT LAST_INSERT_ID();', 0, 0, $link);
     // Curiously, this problem does not happen with the mysql extension but
     // there is another problem with BIGINT primary keys so PMA_DBI_insert_id()
@@ -467,7 +407,7 @@ function PMA_DBI_insert_id($link = '')
  * @uses    $GLOBALS['userlink']
  * @uses    mysqli_affected_rows()
  * @param   object mysqli   $link   the mysqli object
- * @param   boolean         $get_from_cache 
+ * @param   boolean         $get_from_cache
  * @return  string integer
  */
 function PMA_DBI_affected_rows($link = null, $get_from_cache = true)


hooks/post-receive
-- 
phpMyAdmin




More information about the Git mailing list