データベースにロードせずに、MYSQL.sqlダンプファイルに行が存在するかどうかを確認する方法を知りたいです。3つのフィールドもチェックしたいと思います。FieldA、FieldB、FieldCとuserinfo1、userinfo2、userinfo3、これらはすべて文字列です。ファイル名はdatabase1.sqlで、FTPサーバーに保存されます。ファイルを他のサーバーに残し、別のデータベースにインポートしないでこれを行う方法はありますか?
質問する
279 次
1 に答える
1
まず第一に、PHP が実行されているサーバー上にファイルを置かずにファイルを処理する方法はありません。ただし、FTP にログインして自動的にファイルをダウンロードして処理する PHP スクリプトを使用することはできます。
SQL 処理に関しては、ファイルを 1 行ずつ読み取るのが最も簡単な方法です。最初に strpos("INSERT INTO .....) を使用して、正しいクエリ タイプ (挿入、更新など) の開始を確認します。である可能性があり、次のようなものを使用します。
https://code.google.com/p/php-sql-parser/wiki/ParserManual 生成された配列を調べて、値を比較します。これはかなり単純で簡単に行うことができます。ただし、ライブラリにはオーバーヘッドが伴うため、速度が問題になる場合やファイルが非常に大きい場合は、必要な値を取得してそれらをチェックサムするために複雑な preg_match 正規表現が必要になります。その後、それらを一時配列に保存し、毎回このチェックサム配列を調べて、それらの値が既にあるかどうかを照合できます...
于 2013-03-06T07:23:27.533 に答える