- Как я могу получить список баз данных MySQL в PHP с помощью PDO?
- Solutions Collecting From Web of «Как я могу получить список баз данных MySQL в PHP с помощью PDO?»
- mysql_list_dbs
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- mysql_list_dbs
- Description
- Parameters
- Return Values
- Examples
- Notes
- See Also
- User Contributed Notes 4 notes
- PHP: Get a list of all MySQL databases using PDO.
- LIKE clause.
Как я могу получить список баз данных MySQL в PHP с помощью PDO?
Интересно, как я могу получить список баз данных MySQL в PHP с использованием PDO без необходимости сначала подключаться к базе данных (я не имею в виду dbname в dsn)?
Обычно я использовал функцию mysql_list_dbs (), но я больше не использую mysql таким образом.
Solutions Collecting From Web of «Как я могу получить список баз данных MySQL в PHP с помощью PDO?»
или запрос на информационную страницу:
select schema_name from information_schema.schemata
Спасибо, ник rulez. Я привел пример списка БД:
$user = 'root'; $pass = 'root'; $server = 'localhost'; $dbh = new PDO( "mysql:host=$server", $user, $pass ); $dbs = $dbh->query( 'SHOW DATABASES' ); while( ( $db = $dbs->fetchColumn( 0 ) ) !== false ) < echo $db.'
'; >
Другой метод, похожий на Falcon’s:
Этот сценарий использует foreach вместо while и вместо echo используется для имен db, а тэг break устанавливается так, как он будет использоваться с XML. Он также использует ассоциативное свойство, имя столбца, а не индекс массива столбца в возвращаемой строке для отображения желаемого результата.
Это предполагает, что вы правильно настроили соединение PDO и = $ dbconn. В примерах вместо $ dbconn используется много раз $ db.
$stmt ="SHOW DATABASES"; foreach($dbconn->query($stmt) as $row)< print $row['Database'];echo"
"; >
try< $DBH = new PDO("mysql:host=localhost", "root", ""); $DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $DBH->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); >catch(PDOException $e) < echo "Fail"; >$rs = $dbo->query("SHOW DATABASES"); while ($h = $rs->fetch(PDO::FETCH_NUM)) < echo $r[0]."
"; >
В PHP версии 5.4.0 вы можете использовать mysql_list_dbs() :
$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"; >
- Установка pdo_mysql на Amazon EC2 с PHP 5.5
- Круглый минут до ближайшего квартала
- Шаблон Singleton в php
- Как взять SMS и позвонить, чтобы предупредить кого-то, исходя из того, что говорит СМС?
- Как включить функции WordPress в пользовательский .php-файл?
- Сценарий Cron не работает на стороне сервера
- Не помогает ли доступная форма входа в систему сдерживать ботов?
- Могут ли не-анонимные функции в PHP использовать ключевое слово ‘use’?
- Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean given
- Показать результат на той же странице, что и форма в codeigniter, неопределенная переменная
- Как получить содержимое javascript / ajax -loaded div на сайте?
- Запускать страницу PHP каждый час автоматически – без использования заданий Cron
- Несколько видов просмотра Codeigniter в одном представлении
- Разрешить доступ к файлу PHP только через ajax на локальном сервере
- nginx clean url с дружественными именами файлов seo
mysql_list_dbs
This function was deprecated in PHP 5.4.0, and it and the entire original MySQL extension was removed in PHP 7.0.0. Instead, use either the actively developed MySQLi or PDO_MySQL extensions. See also the MySQL: choosing an API guide and its related FAQ entry for additional information. Alternatives to this function include:
Описание
Возвращает указатель на результат, содержащий список баз данных, доступных на указанном сервере.
Список параметров
Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect() . Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING .
Возвращаемые значения
Возвращает resource результата в случае успеха, или FALSE в случае ошибки. Используйте функцию mysql_tablename() , чтобы получить данные из результата, или любую другую функцию, работающую с результатами запросов, например mysql_fetch_array() .
Примеры
Пример #1 Пример использования mysql_list_dbs()
// Без использования mysql_list_dbs()
$link = mysql_connect ( ‘localhost’ , ‘mysql_user’ , ‘mysql_password’ );
$res = mysql_query ( «SHOW DATABASES» );
?php
while ( $row = mysql_fetch_assoc ( $res )) echo $row [ ‘Database’ ] . «\n» ;
>
// Устарело, начиная с PHP 5.4.0
$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» ;
>
?>
Результатом выполнения данного примера будет что-то подобное:
database1 database2 database3
Примечания
Замечание:
Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_listdbs()
Смотрите также
- mysql_db_name() — Возвращает название базы данных из вызова к mysql_list_dbs
- mysql_select_db() — Выбирает базу данных MySQL
mysql_list_dbs
This function was deprecated in PHP 5.4.0, and it and the entire original MySQL extension was removed in PHP 7.0.0. Instead, use either the actively developed MySQLi or PDO_MySQL extensions. See also the MySQL: choosing an API guide. Alternatives to this function include:
Description
Returns a result pointer containing the databases available from the current mysql daemon.
Parameters
The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() had been called with no arguments. If no connection is found or established, an E_WARNING level error is generated.
Return Values
Returns a result pointer resource on success, or false on failure. Use the mysql_tablename() function to traverse this result pointer, or any function for result tables, such as mysql_fetch_array() .
Examples
Example #1 mysql_list_dbs() example
// Usage without mysql_list_dbs()
$link = mysql_connect ( ‘localhost’ , ‘mysql_user’ , ‘mysql_password’ );
$res = mysql_query ( «SHOW DATABASES» );
?php
while ( $row = mysql_fetch_assoc ( $res )) echo $row [ ‘Database’ ] . «\n» ;
>
// Deprecated as of PHP 5.4.0
$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» ;
>
?>
The above example will output something similar to:
database1 database2 database3
Notes
Note:
For backward compatibility, the following deprecated alias may be used: mysql_listdbs()
See Also
User Contributed Notes 4 notes
There is no direct equivalent of mysql_list_dbs() as a mysqli_list_dbs() command, but you can query «show databases» instead.
$db_list = mysql_list_dbs($connect); //mysql
$db_list = mysqli_query($connect, «SHOW DATABASES»); //mysqli
The example is wrong in Spanish version.
ERROR: mysql_fetch_assoc() expects parameter 1 to be resource, null given in XXX on line 5
while ($fila = mysql_fetch_assoc($res))
OK.
while ($fila = mysql_fetch_assoc($resultado))
The result pointer contains only the databases for which the mysql_user has the select priviledge granted.
Another alternative to this function is:
SQL Query: SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
- MySQL Functions
- mysql_affected_rows
- mysql_client_encoding
- mysql_close
- mysql_connect
- mysql_create_db
- mysql_data_seek
- mysql_db_name
- mysql_db_query
- mysql_drop_db
- mysql_errno
- mysql_error
- mysql_escape_string
- mysql_fetch_array
- mysql_fetch_assoc
- mysql_fetch_field
- mysql_fetch_lengths
- mysql_fetch_object
- mysql_fetch_row
- mysql_field_flags
- mysql_field_len
- mysql_field_name
- mysql_field_seek
- mysql_field_table
- mysql_field_type
- mysql_free_result
- mysql_get_client_info
- mysql_get_host_info
- mysql_get_proto_info
- mysql_get_server_info
- mysql_info
- mysql_insert_id
- mysql_list_dbs
- mysql_list_fields
- mysql_list_processes
- mysql_list_tables
- mysql_num_fields
- mysql_num_rows
- mysql_pconnect
- mysql_ping
- mysql_query
- mysql_real_escape_string
- mysql_result
- mysql_select_db
- mysql_set_charset
- mysql_stat
- mysql_tablename
- mysql_thread_id
- mysql_unbuffered_query
PHP: Get a list of all MySQL databases using PDO.
This is a short tutorial on how to get a list of all MySQL databases using PHP’s PDO object. To do this, we will connect to MySQL and execute a “SHOW DATABASES” query.
Take a look at the following snippet:
//Your MySQL server connection details. $host = '127.0.0.1'; $port = '3306'; $user = 'root'; $password = ''; //Connect to the MySQL server using PDO. $pdo = new PDO("mysql:host=$host;port=$port", $user, $password); //Execute a "SHOW DATABASES" SQL query. $stmt = $pdo->query('SHOW DATABASES'); //Fetch the columns from the returned PDOStatement $databases = $stmt->fetchAll(PDO::FETCH_COLUMN); //Loop through the database list and print it out. foreach($databases as $database)< //$database will contain the database name //in a string format echo $database, '
'; >- We connected to the MySQL server using the PDO class. Note that in this case, we omitted the database argument from the $dsn string in the constructor.
- Using the query function, we executed a “SHOW DATABASES” SQL statement. It is worth pointing out that you can also use the query “SHOW SCHEMAS”, as they are both synonyms of each other.
- We fetched the list of database names by using the fetchAll function in conjunction with PDO::FETCH_COLUMN.
- Finally, we looped through our array of database names and printed them out.
LIKE clause.
You can also search for a specific database by using a LIKE clause. For example, if you wanted to retrieve a list of all databases starting with “users_”, then you could do something like this:
//Using a LIKE clause w/ a wildcard. $stmt = $pdo->query("SHOW DATABASES LIKE 'users_%'"); $databases = $stmt->fetchAll(PDO::FETCH_COLUMN); var_dump($databases);
In the query above, I used the LIKE clause with a wildcard operator.
Hopefully, you found this guide useful!