Эта простая маленькая функция использовалась и работала в течение довольно долгого времени, но теперь кажется, что она не работает после обновления до 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"
}
}