2

SQLバックアップを実行するPHPプログラムを作成しようとしていますが、データベースが非常に多いため、プロセスを3つの別々のデータベースに分割したいと考えています。

私のbackup.phpファイルは文字列引数を取り、バックアップの進行状況に関するテキストデータも出力します。

これが私が実装しようとしているロジックです。

while(there is still items in the list){
 open backup.php?s=listx
 x++
}
//continue with loop and open more processes

これらのページを新しいタブで開く方法はありますか?curlを使用してみましたが、うまくいかないようで、htmlタグまたはjavascriptコードがphpコード内で実行されないことをどこかで読んだと思いますか?

助けてくれてありがとう。私の説明が曖昧な場合は申し訳ありませんが、私に知らせてください。これがmainbackup.phpの私のコードです

<?php

// Doesnt open a new page for me..
function callpage($url)
{
  $ch = curl_init();
  $timeout = 1;
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  curl_close($ch);
}


$link = mysql_connect('host', 'user', 'password');

//set each process to handle 60 databases
$limit=60;
$count=0;
$s="";



while ($row = mysql_fetch_assoc($link)) {
//echo $row['Database'] . "\n";
if($count <$limit)
{
    $count++;
    $s.= $row['dbs']. ",";
}
else
{
    //exec('php backup.php s='$s);
    $l='localhost/backup/backup.php?s=';
    $l.=$s;
    //window.open($l);
    callpage($l);
    //substr_replace($s ,"",-1);
    //echo "\n\n\n\n\n\n\n\n\n";

    $count=0;
        $s="";
    }


}

?>
4

2 に答える 2

1

他の誰かが探していた場合に備えて、ここに解決策を投稿すると思いました。phpを使用して、タブを開くjavascriptを出力しました。これを非常にすばやく書いたので、同じページがエラーで開きます。後で修正できると思います。

<?php
echo "<html><body>";
$link = mysql_connect('remotehost', 'user', 'password');
$res = mysql_query("selective databases");

$limit=80;
$count=0;
$s="";
$link = '<a href="javascript:open_wins()">start backup</a><script>function open_wins(){window.open("backup.php?s=';

while ($row = mysql_fetch_assoc($res)) {
    if($count <$limit)
    {
        $count++;
        $s.= $row['dbs']. ",";
    }
    else
    {
        $link.=$s;
        $link.='");window.open("backup.php?s=';

        $count=0;
        $s="";
    }


}
$link.='");window.close();}</script></html>';
echo $link;
echo "</html></body>";
?>
于 2012-06-15T17:50:05.153 に答える
0

バックアッププロセスで、それらのページに出力する個別のデータセット(必要なタブ)ごとに新しいページを作成し、元のページに情報を保持しているページへのリンクを表示することができます(HTMLで開く新しいタブ)。

于 2012-06-14T19:56:03.033 に答える