Получить список таблиц из базы данных MySQL - PullRequest
0 голосов
/ 15 марта 2019

Я только начал изучать php.

Я пытаюсь получить список таблиц из моей базы данных. что я пробовал -

<?php   
    $connection = new mysqli("localhost", "root", "");
    $sql = "SHOW TABLES FROM MyDatabase";
    $result = $connection->query($sql);

    while ($row = $result->fetch_assoc()) {
       echo "Table: {$row[0]}\n"; //error here
    }
?>

Но он не показывает таблицы и возвращает - Notice: Undefined offset: 0. Любая помощь?

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Попробуйте fetch_array() вместо fetch_assoc()

fetch_array() возвращает один массив с цифровыми ключами и ассоциативными строками (именами столбцов), поэтому здесь вы можете использовать $row['column_name'] или $row[0]

Где, как fetch_assoc() будет возвращать строковый индексированный массив ключей без числового массива, так что у вас не будет возможности использовать числовые ключи, такие как $row[0].

Изменить чуть ниже кода -

<?php   
    $connection = new mysqli("localhost", "root", "");
    $sql = "SHOW TABLES FROM MyDatabase";
    $result = $connection->query($sql);

    while ($row = $result->fetch_array()) {
       echo "Table: {$row[0]}\n";
    }
?>
0 голосов
/ 15 марта 2019

В вашем массиве $row нет индекса 0, потому что вы вызываете fetch_assoc(), который возвращает массив с ассоциативными ключами.Попробуйте изменить вызов на fetch_row(), который вернет численно индексированный массив, или fetch_array(), который вернет массив с числовыми и ассоциативными индексами.например,

while ($row = $result->fetch_row()) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...