]> granicus.if.org Git - php/commitdiff
removed changes for mysql_select_db (optional parameter)
authorGeorg Richter <georg@php.net>
Sun, 21 Jul 2002 21:36:10 +0000 (21:36 +0000)
committerGeorg Richter <georg@php.net>
Sun, 21 Jul 2002 21:36:10 +0000 (21:36 +0000)
Why:
1) Its not the common way to add additionally functionality for functions or
features which are already implemented in SQL. Therefore also a lot of
mysql functions are marked as deprecated (and will be removed in near future)

2) The implemented workaround works only when mysql_select_db was called
before (fetching the databasename from mysql->conn.db). It returns invalid
or inconsistent results e.g.:

- when "USE databasename" via mysql_query was used
- when database was dropped or grant privileges had changed.

In conjunction with persistent connection, there are also some inconsistencies,
cause mysql_select_db returns the databasename from an old connection.

To determine the database name just use the SQL command "SELECT DATABASE()"

ext/mysql/php_mysql.c

index cf81a63cf3ce8a7f1491535a90e9061b836df529..debead873be004f0fbfa9aaec0a02acb764d8901 100644 (file)
@@ -833,14 +833,13 @@ PHP_FUNCTION(mysql_close)
 }
 /* }}} */
 
-/* {{{ proto bool mysql_select_db(string database_name [, int link_identifier [, bool return_prev_dbname]])
+/* {{{ proto bool mysql_select_db(string database_name [, int link_identifier])
    Selects a MySQL database */
 PHP_FUNCTION(mysql_select_db)
 {
-       zval **db, **mysql_link, **ret_prevdb;
-       int id, ret_dbname=0;
+       zval **db, **mysql_link;
+       int id;
        php_mysql_conn *mysql;
-       char *prev_db=NULL;
        
        switch(ZEND_NUM_ARGS()) {
                case 1:
@@ -856,14 +855,6 @@ PHP_FUNCTION(mysql_select_db)
                        }
                        id = -1;
                        break;
-               case 3:
-                       if (zend_get_parameters_ex(3, &db, &mysql_link, &ret_prevdb)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       id = -1;
-                       convert_to_long_ex(ret_prevdb);
-                       ret_dbname = Z_LVAL_PP(ret_prevdb);
-                       break;
                default:
                        WRONG_PARAM_COUNT;
                        break;
@@ -873,22 +864,11 @@ PHP_FUNCTION(mysql_select_db)
        
        convert_to_string_ex(db);
 
-       /* Get the previous database name */
-       if (ret_dbname && mysql->conn.db) {
-               prev_db=estrdup(mysql->conn.db);
-       }
-       
        if (mysql_select_db(&mysql->conn, Z_STRVAL_PP(db))!=0) {
                RETVAL_FALSE;
-       } else if (prev_db) {
-               RETVAL_STRING(prev_db, 1);
        } else {
                RETVAL_TRUE;
        }
-
-       if (prev_db) {
-               efree(prev_db);
-       }
 }
 /* }}} */