6

PHP の PDO 実装を使用して、MySQL サーバーのスレーブ ステータスを取得しようとしています。RunningfetchAll()は空の配列を返します。

// DB IP, name, username, and password are fake here. I can connect.
$db = new PDO('mysql:host=192.168.0.0;dbname=production', 'username', 'password');
$result = $db->query("SHOW SLAVE STATUS");
$result->execute();

if ($result != false)
{
    $slave = $result->fetchAll(PDO::FETCH_ASSOC);
}

->execute()コールを削除しようとしましたが、同じ結果です。ここで私が見逃していることは完全に明らかですか?PDO::query のドキュメントを調べてみましたが、あまり役に立ちません。

4

2 に答える 2

5

クエリを実行する権限がありますか?

試す:

$db = new PDO('mysql:host=192.168.0.0;dbname=production', 'username', 'password');

$result = $db->query("SHOW STATUS");

if (!$result) {
    echo $db->errorInfo()[2]; // php 5.4
} else {
    foreach($result->fetchAll() as $row) {
        var_dump($row);
    }
}
于 2012-07-16T18:29:02.807 に答える
1

これは実際には、サーバーの権限の問題が原因でした。複製ユーザーの設定を誤ったため、複製自体が機能していませんでした。

于 2012-07-16T18:27:45.203 に答える