0

Webサーバーで毎晩cronスクリプトを実行して、すべてのデータベースのスナップショットを取得し、それをS3に保存します。

私が実行するファイルはgithub> phpMyS3backupにあります

多くの場合、正常に動作しますが、それ以外の場合はFatal error: Call to a member function fetch() on a non-object in ~/phpMyS3backup.php on line 30

これはこのビットで起こります:

$GLOBALS['con']= new PDO('mysql:host='.DB_HOST, DB_USER, DB_PASS);
try {
    $res = $GLOBALS['con']->query("SHOW DATABASES");
    while($row = $res->fetch()){
        if($row['Database'] != "information_schema"){
            $alldb[] = $row['Database'];
            deb("Database found: {$row['Database']}");
        }
    }
}

いくつかの質問:

なぜ失敗するのですか?スクリプトの実行時にいずれかのサイトにアクセスしている場合、スクリプトの実行が停止してエラーが発生しますか?私が言うように、多くの場合、それは機能しますが、そうでない場合もあります。

フェッチをループに入れて、失敗した場合に再試行するのは安全ですか?または、それが無限ループになる可能性がありますか、または他のパフォーマンスの問題がありますか?

4

0 に答える 0