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