1

ローカルデータベースからリモートデータベースを更新したいのですが、それを行うためのphpスクリプトを作成しましたが、致命的なエラーが表示されます。

リモートデータベースとローカルデータベースは、同じ名前、同じテーブル、同じフィールドを持っています。

私はこの方法を試しましたが、機能しません。

    $tablename="pc_games";
    $database = 'games';

    $local_query = "SELECT * FROM $tablename LIMIT 100 OFFSET $remoterows";
    $local_result = mysql_query($local_query, $connection) or trigger_error("SQL", E_USER_ERROR);

    while($list=mysql_fetch_array($local_result))
    {
    $remote_update=mysql_query("INSERT INTO $tablename SETLECT * from $tablename");
    $remote_update_result = mysql_query($remote_update, $remote_connection) or trigger_error("SQL", E_USER_ERROR);
    }

これを行うための可能なアプローチを見て、提案してください。

4

4 に答える 4

1
"INSERT INTO $tablename SETLECT * from $tablename"

これは無効な SQL ステートメントです。SETLECT は SELECT でなければなりません

于 2012-09-16T07:03:59.017 に答える
1

リモート クエリに構文エラーがあります: "INSERT INTO $tablename SETLECT * from $tablename"SELECTの代わりに意味しSETLECTます。

于 2012-09-16T07:04:44.057 に答える
0
  1. while($list=mysql_fetch_array($local_result)) 絶対に必要ないのに、なぜ結果を (with で) ループしているのですか?

  2. エラー関数をどこでも次のように設定したのはなぜですかtrigger_error("SQL", E_USER_ERROR);

  3. mysql_*データベースにメソッドを使い続けているのはなぜですか?

  4. 別のテーブルからデータを挿入する必要がある場合は、次のように入力します。


mysql_query("INSERT INTO $tablename SELECT * FROM $tablename LIMIT 100 OFFSET $remoterows") or die(mysql_error());

そしてそれで終わります。

于 2012-09-16T07:11:23.963 に答える
0

交換コード:

$tablename="pc_games";
$database = 'games';

$local_query = "SELECT * FROM $tablename LIMIT 100 OFFSET $remoterows";
$local_result = mysql_query($local_query, $connection) or die(mysql_error());

while($list=mysql_fetch_array($local_result))
{
$remote_update=mysql_query("INSERT INTO $tablename SELECT * from $tablename");
$remote_update_result = mysql_query($remote_update, $remote_connection) or die (mysql_error());
}

あなたが間違っていたのは、次の行のタイプミスでした:

$remote_update=mysql_query("INSERT INTO $tablename SETLECT * from $tablename");

SETLECT(おそらく) 使用するつもりだったものではなく、を使用したことに注意してください: SELECT

また、入力エラーを検出するのにかかる時間にも驚かされます。

すべてのエラー ハンドラを、コメントで言及したものに変更しました。将来的にはそれらを使用してください。彼らはより良いです。

更新:コードで何をしましたか? 私は思い切ったことに気づきました:

$remote_update=mysql_query("INSERT INTO $tablename SELECT * from $tablename");
$remote_update_result = mysql_query($remote_update, $remote_connection) or die (mysql_error());

まず第一に、あなたはmysql_query結果を実行しています。次に、何も挿入していませんINSERT INTO $tablename。それは私のせいですか、それとも何かひどく間違ったことをしているのですか?

于 2012-09-16T07:05:26.920 に答える