0

次の関数は、データベース内のテーブルをフェッチするように設計されています。

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

データベース名という追加のレイヤーがあるため、カウントできません。

print_r():

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

したがって、配列をさらに一歩進めて、データベースの数を数えるだけです。どうすればそれができますか。

4

2 に答える 2

3

デフォルトの取得スタイルは です。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);
于 2012-08-14T17:46:13.787 に答える
1

適切な方法は、行うことです

SELECT count(*)
FROM INFORMATION_SCHEMA
WHERE TABLE_SCHEMA='yourdbname';
于 2012-08-14T18:03:29.223 に答える