[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_4_3_1-12052-ge82682d

Piotr Przybylski crackpl at users.sourceforge.net
Wed Jul 27 20:00:37 CEST 2011


The branch, master has been updated
       via  e82682d0e4037d92305ad92cb5514e822e9a5abc (commit)
       via  b9ff7b7ce279391e5a2538c182ee0419e3456fa3 (commit)
       via  f43517efb525b8e4cfc387822308c206f32ba6ee (commit)
       via  46cd0f9a09e3a3fd0f2bb3b9b018282390c4e813 (commit)
       via  b0ce7c20c4595a8a093177583cbdd5e15c6b6dca (commit)
       via  69ac50958439cc32f4fa313ebb096d90b3a10746 (commit)
       via  2141b5fe81d71d08524a11251a38fe5663b51ac7 (commit)
      from  f89a16ed81e111abd7cf55d506ec944b4697ba4e (commit)


- Log -----------------------------------------------------------------
commit e82682d0e4037d92305ad92cb5514e822e9a5abc
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Wed Jul 27 19:54:22 2011 +0200

    Simplify PMA_DBI_free_result
    It was never used with multiple arguments

commit b9ff7b7ce279391e5a2538c182ee0419e3456fa3
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Wed Jul 27 19:51:09 2011 +0200

    Support persistent connections with mysqli extension (only PHP 5.3.0 and newer)

commit f43517efb525b8e4cfc387822308c206f32ba6ee
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Wed Jul 27 19:37:51 2011 +0200

    mysql extension - remove 'persistent' parameter
    Was named 'persistant' and never used/documented

commit 46cd0f9a09e3a3fd0f2bb3b9b018282390c4e813
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Wed Jul 27 19:01:15 2011 +0200

    Comments

commit b0ce7c20c4595a8a093177583cbdd5e15c6b6dca
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Wed Jul 27 17:31:23 2011 +0200

    Improve readability

commit 69ac50958439cc32f4fa313ebb096d90b3a10746
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Wed Jul 27 17:25:20 2011 +0200

    This should be checked in common, not in dbi library

commit 2141b5fe81d71d08524a11251a38fe5663b51ac7
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Wed Jul 27 17:20:14 2011 +0200

    Fix incorrect variable name
    persistant > persistent

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

Summary of changes:
 Documentation.html               |    8 ++-
 libraries/common.inc.php         |    5 ++
 libraries/dbi/mysql.dbi.lib.php  |   97 ++++++++++++++++++--------
 libraries/dbi/mysqli.dbi.lib.php |  139 ++++++++++++++++++++++----------------
 4 files changed, 160 insertions(+), 89 deletions(-)

diff --git a/Documentation.html b/Documentation.html
index 33bfa85..26673cb 100644
--- a/Documentation.html
+++ b/Documentation.html
@@ -1391,8 +1391,12 @@ CREATE DATABASE,ALTER DATABASE,DROP DATABASE</pre>
         is known to cause data corruption when having enabled buffering.</dd>
 
     <dt id="cfg_PersistentConnections">$cfg['PersistentConnections'] boolean</dt>
-    <dd>Whether persistent connections should be used or not (mysql_connect or
-        mysql_pconnect).</dd>
+    <dd>Whether <a href="http://php.net/manual/en/features.persistent-connections.php">persistent connections</a>
+        should be used or not. Works with following extensions:
+        <ul>
+            <li>mysql (<a href="http://php.net/manual/en/function.mysql-pconnect.php">mysql_pconnect</a>),</li>
+            <li>mysqli (requires PHP 5.3.0 or newer, <a href="http://php.net/manual/en/mysqli.persistconns.php">more information</a>).</li>
+        </ul></dd>
 
     <dt id="cfg_ForceSSL">$cfg['ForceSSL'] boolean</dt>
     <dd>Whether to force using https while accessing phpMyAdmin.</dd>
diff --git a/libraries/common.inc.php b/libraries/common.inc.php
index 53cde17..2b2cf60 100644
--- a/libraries/common.inc.php
+++ b/libraries/common.inc.php
@@ -899,6 +899,11 @@ if (! defined('PMA_MINIMUM_COMMON')) {
             unset($login_without_password_is_forbidden); //Clean up after you!
         }
 
+        // if using TCP socket is not needed
+        if (strtolower($cfg['Server']['connect_type']) == 'tcp') {
+            $cfg['Server']['socket'] = '';
+        }
+
         // Try to connect MySQL with the control user profile (will be used to
         // get the privileges list for the current user but the true user link
         // must be open after this one so it would be default one for all the
diff --git a/libraries/dbi/mysql.dbi.lib.php b/libraries/dbi/mysql.dbi.lib.php
index aa099eb..ed8a93a 100644
--- a/libraries/dbi/mysql.dbi.lib.php
+++ b/libraries/dbi/mysql.dbi.lib.php
@@ -20,18 +20,28 @@ if (! defined('PMA_MYSQL_CLIENT_API')) {
     unset($client_api);
 }
 
-function PMA_DBI_real_connect($server, $user, $password, $client_flags, $persistant=false)
+/**
+ * Helper function for connecting to the database server
+ *
+ * @param   string  $server
+ * @param   string  $user
+ * @param   string  $password
+ * @param   int     $client_flags
+ * @param   boolean $persistent
+ * @return  mixed   false on error or a mysql connection resource on success
+ */
+function PMA_DBI_real_connect($server, $user, $password, $client_flags, $persistent = false)
 {
     global $cfg;
 
     if (empty($client_flags)) {
-        if ($cfg['PersistentConnections'] || $persistant) {
+        if ($cfg['PersistentConnections'] || $persistent) {
             $link = @mysql_pconnect($server, $user, $password);
         } else {
             $link = @mysql_connect($server, $user, $password);
         }
     } else {
-        if ($cfg['PersistentConnections'] || $persistant) {
+        if ($cfg['PersistentConnections'] || $persistent) {
             $link = @mysql_pconnect($server, $user, $password, $client_flags);
         } else {
             $link = @mysql_connect($server, $user, $password, false, $client_flags);
@@ -40,11 +50,14 @@ function PMA_DBI_real_connect($server, $user, $password, $client_flags, $persist
 
     return $link;
 }
+
 /**
+ * connects to the database server
+ * 
  * @param   string  $user           mysql user name
  * @param   string  $password       mysql user password
  * @param   boolean $is_controluser
- * @param   array   $server host/port/socket/persistant
+ * @param   array   $server host/port/socket/persistent
  * @param   boolean $auxiliary_connection (when true, don't go back to login if connection fails)
  * @return  mixed   false on error or a mysqli object on success
  */
@@ -59,9 +72,6 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
         $server_socket = (empty($server['socket']))
             ? ''
             : ':' . $server['socket'];
-        $server_persistant = (empty($server['persistant']))
-            ? false
-            : true;
     } else {
         $server_port   = (empty($cfg['Server']['port']))
             ? ''
@@ -71,10 +81,6 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
             : ':' . $cfg['Server']['socket'];
     }
 
-    if (strtolower($cfg['Server']['connect_type']) == 'tcp') {
-        $cfg['Server']['socket'] = '';
-    }
-
     $client_flags = 0;
 
     // always use CLIENT_LOCAL_FILES as defined in mysql_com.h
@@ -101,9 +107,9 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
         }
     } else {
         if (!isset($server['host'])) {
-            $link = PMA_DBI_real_connect($server_socket, $user, $password, NULL, $server_persistant);
+            $link = PMA_DBI_real_connect($server_socket, $user, $password, NULL);
         } else {
-            $link = PMA_DBI_real_connect($server['host'] . $server_port . $server_socket, $user, $password, NULL, $server_persistant);
+            $link = PMA_DBI_real_connect($server['host'] . $server_port . $server_socket, $user, $password, NULL);
         }
     }
     if (empty($link)) {
@@ -128,11 +134,11 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
 }
 
 /**
- * select a db
+ * selects given database
  *
- * @param string $dbname name of db to select
- * @param resource $link mysql link resource
- * @return boolean success
+ * @param string    $dbname  name of db to select
+ * @param resource  $link    mysql link resource
+ * @return boolean
  */
 function PMA_DBI_select_db($dbname, $link = null)
 {
@@ -149,9 +155,9 @@ function PMA_DBI_select_db($dbname, $link = null)
 /**
  * runs a query and returns the result
  *
- * @param string $query query to run
+ * @param string   $query query to run
  * @param resource $link mysql link resource
- * @param integer $options
+ * @param integer  $options
  * @return mixed
  */
 function PMA_DBI_real_query($query, $link, $options)
@@ -165,15 +171,33 @@ function PMA_DBI_real_query($query, $link, $options)
     }
 }
 
+/**
+ * returns array of rows with associative and numeric keys from $result
+ *
+ * @param   resource  $result
+ * @return  array
+ */
 function PMA_DBI_fetch_array($result)
 {
     return mysql_fetch_array($result, MYSQL_BOTH);
 }
 
+/**
+ * returns array of rows with associative keys from $result
+ *
+ * @param   resource  $result
+ * @return  array
+ */
 function PMA_DBI_fetch_assoc($result) {
     return mysql_fetch_array($result, MYSQL_ASSOC);
 }
 
+/**
+ * returns array of rows with numeric keys from $result
+ *
+ * @param   resource  $result
+ * @return  array
+ */
 function PMA_DBI_fetch_row($result)
 {
     return mysql_fetch_array($result, MYSQL_NUM);
@@ -192,17 +216,14 @@ function PMA_DBI_data_seek($result, $offset)
 }
 
 /**
- * Frees the memory associated with the results
+ * Frees memory associated with the result
  *
- * @param result    $result,...     one or more mysql result resources
+ * @param  resource  $result
  */
-function PMA_DBI_free_result()
+function PMA_DBI_free_result($result)
 {
-    foreach (func_get_args() as $result) {
-        if (is_resource($result)
-         && get_resource_type($result) === 'mysql result') {
-            mysql_free_result($result);
-        }
+    if (is_resource($result) && get_resource_type($result) === 'mysql result') {
+        mysql_free_result($result);
     }
 }
 
@@ -337,6 +358,12 @@ function PMA_DBI_getError($link = null)
     return $error;
 }
 
+/**
+ * returns the number of rows returned by last query
+ *
+ * @param   resource    $result
+ * @return  string|ineteger
+ */
 function PMA_DBI_num_rows($result)
 {
     if (!is_bool($result)) {
@@ -346,6 +373,12 @@ function PMA_DBI_num_rows($result)
     }
 }
 
+/**
+ * returns last inserted auto_increment id for given $link or $GLOBALS['userlink']
+ *
+ * @param   resource $link   the mysql object
+ * @return  string|ineteger
+ */
 function PMA_DBI_insert_id($link = null)
 {
     if (empty($link)) {
@@ -366,9 +399,9 @@ function PMA_DBI_insert_id($link = null)
 /**
  * returns the number of rows affected by last query
  *
- * @param   object mysql   $link   the mysql object
- * @param   boolean        $get_from_cache
- * @return  string integer
+ * @param   resource   $link   the mysql object
+ * @param   boolean    $get_from_cache
+ * @return  string|integer
  */
 function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
 {
@@ -388,7 +421,11 @@ function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
 }
 
 /**
+ * returns metainfo for fields in $result
+ *
  * @todo add missing keys like in from mysqli_query (orgname, orgtable, flags, decimals)
+ * @param   resource    $result
+ * @return  array  meta info for fields in $result
  */
 function PMA_DBI_get_fields_meta($result)
 {
diff --git a/libraries/dbi/mysqli.dbi.lib.php b/libraries/dbi/mysqli.dbi.lib.php
index 0cd7c2f..535b825 100644
--- a/libraries/dbi/mysqli.dbi.lib.php
+++ b/libraries/dbi/mysqli.dbi.lib.php
@@ -44,6 +44,34 @@ if (! defined('MYSQLI_TYPE_BIT')) {
 }
 
 /**
+ * Helper function for connecting to the database server
+ *
+ * @param   mysqli  $link
+ * @param   string  $host
+ * @param   string  $user
+ * @param   string  $password
+ * @param   string  $dbname
+ * @param   int     $server_port
+ * @param   string  $server_socket
+ * @param   int     $client_flags
+ * @param   boolean $persistent
+ * @return  boolean
+ */
+function PMA_DBI_real_connect($link, $host, $user, $password, $dbname, $server_port, $server_socket, $client_flags = null, $persistent = false)
+{
+    global $cfg;
+
+    if ($cfg['PersistentConnections'] || $persistent) {
+        $host = 'p:' . $host;
+    }
+    if ($client_flags === null) {
+        return @mysqli_real_connect($link, $host, $user, $password, $dbname, $server_port, $server_socket);
+    } else {
+        return @mysqli_real_connect($link, $host, $user, $password, $dbname, $server_port, $server_socket, $client_flags);
+    }
+}
+
+/**
  * connects to the database server
  *
  * @param   string  $user           mysql user name
@@ -55,6 +83,8 @@ if (! defined('MYSQLI_TYPE_BIT')) {
  */
 function PMA_DBI_connect($user, $password, $is_controluser = false, $server = null, $auxiliary_connection = false)
 {
+    global $cfg;
+
     if ($server) {
         $server_port   = (empty($server['port']))
             ? false
@@ -66,17 +96,12 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
             ? 'localhost'
             : $server['host'];
     } else {
-        $server_port   = (empty($GLOBALS['cfg']['Server']['port']))
+        $server_port   = (empty($cfg['Server']['port']))
             ? false
-            : (int) $GLOBALS['cfg']['Server']['port'];
-        $server_socket = (empty($GLOBALS['cfg']['Server']['socket']))
+            : (int) $cfg['Server']['port'];
+        $server_socket = (empty($cfg['Server']['socket']))
             ? null
-            : $GLOBALS['cfg']['Server']['socket'];
-    }
-
-
-    if (strtolower($GLOBALS['cfg']['Server']['connect_type']) == 'tcp') {
-        $GLOBALS['cfg']['Server']['socket'] = '';
+            : $cfg['Server']['socket'];
     }
 
     // NULL enables connection to the default socket
@@ -88,23 +113,23 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
     $client_flags = 0;
 
     /* Optionally compress connection */
-    if ($GLOBALS['cfg']['Server']['compress'] && defined('MYSQLI_CLIENT_COMPRESS')) {
+    if ($cfg['Server']['compress'] && defined('MYSQLI_CLIENT_COMPRESS')) {
         $client_flags |= MYSQLI_CLIENT_COMPRESS;
     }
 
     /* Optionally enable SSL */
-    if ($GLOBALS['cfg']['Server']['ssl'] && defined('MYSQLI_CLIENT_SSL')) {
+    if ($cfg['Server']['ssl'] && defined('MYSQLI_CLIENT_SSL')) {
         $client_flags |= MYSQLI_CLIENT_SSL;
     }
 
     if (!$server) {
-        $return_value = @mysqli_real_connect($link, $GLOBALS['cfg']['Server']['host'], $user, $password, false, $server_port, $server_socket, $client_flags);
+        $return_value = @PMA_DBI_real_connect($link, $cfg['Server']['host'], $user, $password, false, $server_port, $server_socket, $client_flags);
         // Retry with empty password if we're allowed to
-        if ($return_value == false && isset($GLOBALS['cfg']['Server']['nopassword']) && $GLOBALS['cfg']['Server']['nopassword'] && !$is_controluser) {
-            $return_value = @mysqli_real_connect($link, $GLOBALS['cfg']['Server']['host'], $user, '', false, $server_port, $server_socket, $client_flags);
+        if ($return_value == false && isset($cfg['Server']['nopassword']) && $cfg['Server']['nopassword'] && !$is_controluser) {
+            $return_value = @PMA_DBI_real_connect($link, $cfg['Server']['host'], $user, '', false, $server_port, $server_socket, $client_flags);
         }
     } else {
-        $return_value = @mysqli_real_connect($link, $server['host'], $user, $password, false, $server_port, $server_socket);
+        $return_value = @PMA_DBI_real_connect($link, $server['host'], $user, $password, false, $server_port, $server_socket);
     }
 
     if ($return_value == false) {
@@ -131,9 +156,9 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
 /**
  * selects given database
  *
- * @param   string          $dbname database name to select
- * @param   object mysqli   $link   the mysqli object
- * @return  boolean         true or false
+ * @param string  $dbname  database name to select
+ * @param mysqli  $link    the mysqli object
+ * @return boolean
  */
 function PMA_DBI_select_db($dbname, $link = null)
 {
@@ -150,10 +175,10 @@ function PMA_DBI_select_db($dbname, $link = null)
 /**
  * runs a query and returns the result
  *
- * @param   string          $query      query to execute
- * @param   object mysqli   $link       mysqli object
- * @param   integer         $options
- * @return  mixed           true, false or result object
+ * @param   string   $query      query to execute
+ * @param   mysqli   $link       mysqli object
+ * @param   integer  $options
+ * @return  mysqli_result|boolean
  */
 function PMA_DBI_real_query($query, $link, $options)
 {
@@ -171,8 +196,8 @@ function PMA_DBI_real_query($query, $link, $options)
 /**
  * returns array of rows with associative and numeric keys from $result
  *
- * @param   object mysqli result    $result
- * @return  array                   result rows
+ * @param   mysqli_result  $result
+ * @return  array
  */
 function PMA_DBI_fetch_array($result)
 {
@@ -182,8 +207,8 @@ function PMA_DBI_fetch_array($result)
 /**
  * returns array of rows with associative keys from $result
  *
- * @param   object mysqli result    $result
- * @return  array                   result rows
+ * @param   mysqli_result  $result
+ * @return  array
  */
 function PMA_DBI_fetch_assoc($result)
 {
@@ -193,8 +218,8 @@ function PMA_DBI_fetch_assoc($result)
 /**
  * returns array of rows with numeric keys from $result
  *
- * @param   object mysqli result    $result
- * @return  array                   result rows
+ * @param   mysqli_result  $result
+ * @return  array
  */
 function PMA_DBI_fetch_row($result)
 {
@@ -214,23 +239,21 @@ function PMA_DBI_data_seek($result, $offset)
 }
 
 /**
- * Frees the memory associated with the results
+ * Frees memory associated with the result
  *
- * @param   result  $result,...     one or more mysql result resources
+ * @param  mysqli_result  $result
  */
-function PMA_DBI_free_result()
+function PMA_DBI_free_result($result)
 {
-    foreach (func_get_args() as $result) {
-        if ($result instanceof mysqli_result) {
-            mysqli_free_result($result);
-        }
+    if ($result instanceof mysqli_result) {
+        mysqli_free_result($result);
     }
 }
 
 /**
  * Check if there are any more query results from a multi query
  *
- * @param   object mysqli   $link   the mysqli object
+ * @param   mysqli   $link   the mysqli object
  * @return  boolean         true or false
  */
 function PMA_DBI_more_results($link = null) {
@@ -247,7 +270,7 @@ function PMA_DBI_more_results($link = null) {
 /**
  * Prepare next result from multi_query
  *
- * @param   object mysqli   $link   the mysqli object
+ * @param   mysqli   $link   the mysqli object
  * @return  boolean         true or false
  */
 function PMA_DBI_next_result($link = null) {
@@ -356,8 +379,10 @@ function PMA_DBI_getError($link = null)
 }
 
 /**
+ * returns the number of rows returned by last query
  *
- * @param   object mysqli result    $result
+ * @param   mysqli_result    $result
+ * @return  string|ineteger
  */
 function PMA_DBI_num_rows($result)
 {
@@ -372,10 +397,10 @@ function PMA_DBI_num_rows($result)
 /**
  * returns last inserted auto_increment id for given $link or $GLOBALS['userlink']
  *
- * @param   object mysqli   $link   the mysqli object
- * @return  string ineteger
+ * @param   mysqli   $link   the mysqli object
+ * @return  string|ineteger
  */
-function PMA_DBI_insert_id($link = '')
+function PMA_DBI_insert_id($link = null)
 {
     if (empty($link)) {
         if (isset($GLOBALS['userlink'])) {
@@ -396,9 +421,9 @@ function PMA_DBI_insert_id($link = '')
 /**
  * returns the number of rows affected by last query
  *
- * @param   object mysqli   $link   the mysqli object
- * @param   boolean         $get_from_cache
- * @return  string integer
+ * @param   mysqli   $link   the mysqli object
+ * @param   boolean  $get_from_cache
+ * @return  string|integer
  */
 function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
 {
@@ -420,8 +445,8 @@ function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
  * returns metainfo for fields in $result
  *
  * @todo preserve orignal flags value
- * @param   object mysqli result    $result
- * @return  array                   meta info for fields in $result
+ * @param   mysqli_result    $result
+ * @return  array  meta info for fields in $result
  */
 function PMA_DBI_get_fields_meta($result)
 {
@@ -499,8 +524,8 @@ function PMA_DBI_get_fields_meta($result)
 /**
  * return number of fields in given $result
  *
- * @param   object mysqli result    $result
- * @return  integer                 field count
+ * @param   mysqli_result    $result
+ * @return  integer  field count
  */
 function PMA_DBI_num_fields($result)
 {
@@ -510,9 +535,9 @@ function PMA_DBI_num_fields($result)
 /**
  * returns the length of the given field $i in $result
  *
- * @param   object mysqli result    $result
- * @param   integer                 $i      field
- * @return  integer                 length of field
+ * @param   mysqli_result    $result
+ * @param   integer          $i      field
+ * @return  integer  length of field
  */
 function PMA_DBI_field_len($result, $i)
 {
@@ -522,9 +547,9 @@ function PMA_DBI_field_len($result, $i)
 /**
  * returns name of $i. field in $result
  *
- * @param   object mysqli result    $result
- * @param   integer                 $i      field
- * @return  string                  name of $i. field in $result
+ * @param   mysqli_result    $result
+ * @param   integer          $i      field
+ * @return  string  name of $i. field in $result
  */
 function PMA_DBI_field_name($result, $i)
 {
@@ -534,9 +559,9 @@ function PMA_DBI_field_name($result, $i)
 /**
  * returns concatenated string of human readable field flags
  *
- * @param   object mysqli result    $result
- * @param   integer                 $i      field
- * @return  string                  field flags
+ * @param   mysqli_result    $result
+ * @param   integer          $i      field
+ * @return  string  field flags
  */
 function PMA_DBI_field_flags($result, $i)
 {


hooks/post-receive
-- 
phpMyAdmin




More information about the Git mailing list