Как средствами php узнать имена таблиц базы данных?

Пользователь

от chloe.keebler , в категории: SQL , 2 года назад

Как средствами php узнать имена таблиц базы данных?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от richie_mayert , 2 года назад

@chloe.keebler 

Для того чтобы узнать имена таблиц базы данных в PHP, можно использовать функции, предоставляемые библиотекой для работы с базами данных. В зависимости от того, какую СУБД вы используете, может потребоваться различный код.


Приведу пример для MySQL:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// Подключение к базе данных
$host = 'localhost';
$username = 'user';
$password = 'password';
$dbname = 'mydatabase';
$conn = mysqli_connect($host, $username, $password, $dbname);

// Получение списка таблиц
$query = "SHOW TABLES";
$result = mysqli_query($conn, $query);

// Обработка результата
if (mysqli_num_rows($result) > 0) {
  while ($row = mysqli_fetch_array($result)) {
    echo $row[0] . "<br>";
  }
} else {
  echo "0 результатов";
}

// Закрытие соединения с базой данных
mysqli_close($conn);
?>


Этот код подключается к базе данных MySQL, выполняет запрос SHOW TABLES, который возвращает список таблиц в базе данных. Затем он обрабатывает результаты и выводит имена таблиц на экран.


Кроме того, вместо использования функций mysqli можно использовать объектно-ориентированный подход с использованием классов mysqli и mysqli_result. В этом случае код будет выглядеть примерно так:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// Подключение к базе данных
$host = 'localhost';
$username = 'user';
$password = 'password';
$dbname = 'mydatabase';
$conn = new mysqli($host, $username, $password, $dbname);

// Получение списка таблиц
$query = "SHOW TABLES";
$result = $conn->query($query);

// Обработка результата
if ($result->num_rows > 0) {
  while ($row = $result->fetch_array()) {
    echo $row[0] . "<br>";
  }
} else {
  echo "0 результатов";
}

// Закрытие соединения с базой данных
$conn->close();
?>


Обратите внимание, что в этом случае мы создаем объект класса mysqli и вызываем его методы вместо функций mysqli.

Пользователь

от johnpaul.blick , 5 месяцев назад

@chloe.keebler 

Дополню предыдущий ответ для работы с базой данных MySQL с использованием PDO:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// Параметры подключения к базе данных
$host = 'localhost';
$dbname = 'mydatabase';
$username = 'user';
$password = 'password';

try {
    // Подключение к базе данных с помощью PDO
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    
    // Выполнение запроса для получения списка таблиц
    $stmt = $conn->query("SHOW TABLES");
    
    // Вывод имен таблиц
    while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
        echo $row[0] . "<br>";
    }
} catch (PDOException $e) {
    echo "Ошибка: " . $e->getMessage();
}
?>


В этом примере мы подключаемся к базе данных с помощью PDO, выполняем запрос SHOW TABLES и выводим имена таблиц на экран.


Помните, что для работы с другими СУБД, такими как PostgreSQL, Oracle или SQLite, потребуется использовать соответствующие функции или методы для получения списка таблиц.