Mysql get all databases php

Как я могу получить список баз данных 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
Читайте также:  Php include in class function

Источник

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» );

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:

Читайте также:  Php включить отображение всех ошибок

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» );

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.

Читайте также:  jQuery - Enable or Disable Button

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, '
    '; >
    1. 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.
    2. 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.
    3. We fetched the list of database names by using the fetchAll function in conjunction with PDO::FETCH_COLUMN.
    4. 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!

    Источник

Оцените статью