Re: mysql_query - CREATE DATABASE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux