PHP цикл для изменения нескольких таблиц mysql - PullRequest
0 голосов
/ 08 октября 2018

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

Здесь я получил все таблицы, которые хочу изменить:

<?php

include('conf/conn.php');

$result = mysqli_query($conn, "SHOW TABLES FROM queue LIKE '%room_%'");

while($table = mysqli_fetch_array($result)) {
    echo($table[0] . "<br>");
}

?>

Теперь я хочу создать цикл, который выполняет запрос MySQL для каждой таблицы и каждый раз отображает состояниекаждый запрос выполняется.Примерно так:

<?php

foreach ($table[0] as $tableToAlter) {
    $result = mysqli_query('ALTER TABLE $tableToAlter AUTO_INCREMENT = 1001');
    if (!$result) {
        echo 'Alter failded.';
    } else {
        echo 'Alter successful'
    }
}

?>

Как видите, я новичок в PHP и застрял в этой последней части.Я не знаю, нужно ли мне преобразовывать массив в строку перед циклом.Если кто-то может сказать мне, как сделать так, чтобы это работало правильно, я буду очень признателен.Спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

Как предлагается в комментариях, вы можете вызвать свой запрос в цикле while, используя переменную $ table [0].

<?php

include('conf/conn.php');

$result = mysqli_query($conn, "SHOW TABLES FROM queue LIKE '%room_%'");

while($table = mysqli_fetch_array($result)) {
    echo("Altering {$table[0]}<br>");
    if (!mysqli_query("ALTER TABLE {$table[0]} AUTO_INCREMENT = 1001");) {
        echo 'Alter failded.';
    } else {
        echo 'Alter successful'
    }
    echo "<br>";
}

?>

В качестве примечания, поскольку мы вводим неизвестный ввод в нашзапрос, который я бы предложил в общем случае, используя подготовленные операторы, пример которых можно найти здесь: Как я могу предотвратить внедрение SQL в PHP? (верхний ответ)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...