ВЫБРАТЬ данные из одной таблицы в каждой базе данных на сервере - PullRequest
1 голос
/ 20 марта 2019

Я хотел получить список всех баз данных для конкретной учетной записи на моем сервере, используя PHP, поэтому я использовал следующий PHP / MySQL, взятый по этой ссылке: PHP - Получить список имен баз данных

$db_conn = mysqli_connect('localhost', 'username', 'password');
//get a list of databases in the account
$result = mysqli_query($db_conn,"SHOW DATABASES"); 
//display results
while ($row = mysqli_fetch_array($result)) { 
    echo "database name - ".$row[0]."<br>";
}

Эта часть отлично работает. Но теперь я хочу получить значение одной конкретной строки в таблице в каждой из этих баз данных, все базы данных содержат одинаковые таблицы и, следовательно, одинаковые строки.

Так что в то время как {} я пытался поместить оператор SELECT:

$sql = "SELECT option_value FROM sweb_options WHERE option_name = 'siteurl'";

и затем повторил $ ​​sql, но это ничего не сделало, кроме вывода оператора. Любые идеи, как я могу это сделать, пожалуйста?

Большое спасибо.

Ответы [ 2 ]

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

Как я уже сказал в комментариях

Ну, прежде всего, вам нужно FROM {database} .sweb_options

while ($row = mysqli_fetch_array($result)) { 
    $sql = "SELECT option_value FROM `{$row[0]}`.`sweb_options` WHERE option_name = 'siteurl'";
}

В противном случае он будет использовать любую базу данных, которую вы подключилис этим экземпляром mysqli

Так что в основном это просто говорит ему, какой вы хотите.Вы также можете выполнять объединения и объединения по нескольким БД в MySQL, хотя это не относится ко всем базам данных.О чем стоит помнить больше, если вы используете PDO вместо mysqli, но все же стоит упомянуть.

Приветствия.

0 голосов
/ 20 марта 2019

Примерно так должно работать:

while ($row = mysqli_fetch_array($result)) { 
    $sql = "SELECT option_value FROM {$row[0]}.sweb_options WHERE option_name = 'siteurl'";
    $result2 = mysqli_query($db_conn, $sql);
    // check for success in case table doesn't have option_value column
    if ($result2) {
        $row2 = mysqli_fetch_assoc($result2);
        echo $row2['option_value'];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...