Переписывающая функция, которая перечисляет MySQL таблиц - PullRequest
0 голосов
/ 01 марта 2020

Эта простая маленькая функция использовалась и работала в течение довольно долгого времени, но теперь кажется, что она не работает после обновления до PHP 7.X. Не знаю почему, но выдает ошибку Undefined offset 0 в строке, содержащей $row[0]. Я понимаю ошибку, но не уверен, почему она возникла внезапно, когда она работала. DBConnect() - это пользовательская функция, используемая на сайте для извлечения одной или нескольких строк, подсчета строк, обновления, вставки и удаления данных, и работает везде, кроме здесь.

Что мне делать, чтобы исправить это, надеюсь, изменение DBConnect()?

function ListTableNames($DBname) {

    $rowQuery = "SHOW TABLES FROM $DBname";
    $rowTables = DBConnect($rowQuery,"Multiple", $DBname,"assoc");
    $tableList = [];

    foreach ($rowTables as $row) :
        $tableList[] = $row[0];
    endforeach;

    return $tableList;
}

Часть функции DBConnect (), как описано выше:

case "Multiple":
    if ($result = $mysqli->query($Query)) :
        $numrowsCat = $result->num_rows;
        if ($numrowsCat >= 1) :
            $result = $mysqli->query($Query);
            if ($selType === "assoc") :
                while($row = $result->fetch_assoc()) :
                    $results_array[] = $row;
                endwhile;
            else :                  
                while($row = $result->fetch_array()) :
                    $results_array[] = $row;
                endwhile;
            endif;
            return $results_array;
        endif;
        $MySQLError = ($mysqli->connect_errno) ? mysqli_error($mysqli) : "";
        $mysqli->close();
        if ($MySQLError) return $MySQLError;
    endif;
break;

var_dump ($ rowTables) показывает:

array(29) {
  [0]=>
  array(1) {
    ["Tables_in_dbname"]=>
    string(9) "table1"
  }
  [1]=>
  array(1) {
    ["Tables_in_dbname"]=>
    string(9) "table2"
  }
  [2]=>
  array(1) {
    ["Tables_in_dbname"]=>
    string(17) "table3"
  }
  [3]=>
  array(1) {
    ["Tables_in_dbname"]=>
    string(8) "table4"
  }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...