Shawn McKenzie wrote:
> Shawn McKenzie wrote:
>> R B wrote:
>>> Hello,
>>>
>>> When i create a mysql database with the next command:
>>>
>>> mysql_query("CREATE DATABASE my_db",$con)
>>>
>>> In the server is created the database, but usually the name is created with
>>> a prefix.
>>>
>>> In this case: someuser_my_db
>>>
>>> How can i detect with PHP the complete name of the new database created?
>>>
>>> Thanks
>>>
>> There may be a better way, but off the top of my head, translate this to
>> PHP:
>>
>> use information_schema;
>> select SCHEMA_NAME from SCHEMATA where SCHEMA_NAME like '%_my_db';
>>
>> Now of course you could have multiples there, like user_my_db and
>> user2_my_db.  Not sure about that, maybe it would be the last one in the
>> returned records?
>>
> 
> Using mysql_list_dbs() and mysql_db_name()  would acheive the same,
> however from the man page of mysql_db_name() there is a neat contib:
> 
> $result = mysql_query("SELECT DATABASE()");
> $dbname = mysql_result($result, 0);
> 
Scratch the above.  This is the db of the current connection.  This
should work, but again doesn't account for multiple dbs with my_db in
the name:

$dblist = mysql_list_dbs();
while (list($dbname) = mysql_fetch_row($dblist)) {
        if (strpos($dbname, 'my_db') !== false) {
                break;
        }
}

However it might be easier to do this:

mysql_select_db("information_schema");
$result = mysql_query("select SCHEMA_NAME from SCHEMATA where
SCHEMA_NAME like '%my_db'");
$dbname = mysql_result($result, 0);


-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to