Таблицы счетчиков PDO в базе данных

Следующая функция предназначена для получения таблиц в базе данных.

$check = $fsdbh->query('show tables')->fetch(); 

Его нельзя подсчитать, потому что в нем есть дополнительный слой, имя базы данных.

print_r ():

 Array ( [Tables_in_dbtest] => test [0] => test ) 

Поэтому нам нужно сделать еще один шаг в массиве и просто подсчитать количество баз данных. Как мы это сделаем.

Стиль выборки по умолчанию – PDO::FETCH_BOTH , вам нужно PDO::FETCH_ASSOC или PDO::FETCH_NUM .

Дополнительную информацию см. В документации на fetch .

Этот код должен работать на вас:

 $check = $fsdbh->query('show tables')->fetch(PDO::FETCH_NUM); 

Еще одна вещь, которую вы можете сделать, – изменить стиль выборки по умолчанию с помощью PDO :: setAttribute до PDO::FETCH_ASSOC после подключения к вашей базе данных.

 $dbh = new PDO('...'); $dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 

Правильный способ – это сделать

 SELECT count(*) FROM INFORMATION_SCHEMA WHERE TABLE_SCHEMA='yourdbname';