Доброе утро.
Мне было интересно, есть ли способ в PHP, чтобы перечислять все доступные базы данных с помощью mysqli . Следующее работает гладко в mysql (см. Php docs ):
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); $db_list = mysql_list_dbs($link); while ($row = mysql_fetch_object($db_list)) { echo $row->Database . "\n"; }
Могу ли я изменить:
$db_list = mysql_list_dbs($link); // mysql
во что-то вроде:
$db_list = mysqli_list_dbs($link); // mysqli
Если это не работает, можно ли было бы преобразовать созданное соединение mysqli в обычный mysql и продолжить выборку / запрос на новом преобразованном соединении?
Не похоже, что есть функция, доступная для этого, но вы можете создавать show databases;
запрос и возвращаемые строки будут доступными базами данных.
Я понимаю, что это старый поток, но поиск в сети все еще не помогает. Вот мое решение;
$sql="SHOW DATABASES"; $link = mysqli_connect($dbhost,$dbuser,$dbpass) or die ('Error connecting to mysql: ' . mysqli_error($link).'\r\n'); if (!($result=mysqli_query($link,$sql))) { printf("Error: %s\n", mysqli_error($link)); } while( $row = mysqli_fetch_row( $result ) ){ if (($row[0]!="information_schema") && ($row[0]!="mysql")) { echo $row[0]."\r\n"; } }