そのスクリプトには、深刻な、取引を破る問題があります。最も些細なデータベース以外では機能しません。
- NULLはサポートされていません。
- 文字セットは考慮されません。
- テーブル名は区切られていません。
- テーブルのみがサポートされています。ビュー、ストアドプロシージャ、トリガー、関数などはサポートされていません。
-
addslashes()コード> 文字セットは安全ではありません
。 -
mysql_query()
すべてをプリフェッチします テーブルの行。したがって、数百万行のテーブルをクエリすると、PHPのメモリ制限を超えてしまいます。mysql_unbuffered_query()
を使用します 代わりは。考え直してみると、すべての出力を$ returnに収集しているので、これは意味がありません。 -
@
によるエラーの抑制 演算子は悪い習慣です。エラーをチェックし、有益なメッセージで適切に失敗します。
mysqldumpを使用しないという要件はばかげています。
なぜあなた自身のために車輪を再発明するためにそんなに多くの仕事をし、それでもそれをそんなに間違えるのですか? shellexec()
を介してmysqldumpを実行するだけです。
。
参照: