9

私はこの質問が何度も聞かれたことを知っていますが、私はすべてを試しました。

何千もの画像を繰り返し処理し、必要に応じてサイズ変更を実行してからデータベースに挿入するPHPスクリプトがあります。

このエラーメッセージが表示されます:

警告:mysql_query()[function.mysql-query]:MySQLサーバーは105行目のC:\ Utilities \ server \ htdocs \ newGen\index.phpにありません。

警告:mysql_query()[function.mysql-query]:105行目のC:\ Utilities \ server \ htdocs \ newGen\index.phpにある結果セットのヘッダーの読み取り中にエラーが発生しました

私はXamppliteを使用しているため、php.iniの一部が欠落しており、他の部分はliteバージョンを使用していないために問題を解決するために使用しています。

問題はタイムアウトではないと確信しています。スクリプトは数分間実行されますが、すでに処理された画像をスキップするため、約10秒以内にエラーメッセージがすぐに表示されます。多分これは最大テーブルサイズと関係がありますか?これを制御するphp.iniに何も見つかりません。

すべての助けに大いに感謝します、私は今何時間もこれに行ってきました。

編集:

これが105マークのコードで、クエリです。

        // Add tNail and image to db
        mysql_query("INSERT INTO gallery values('','$hash','$thumbBlob','$imageBlob','$type','','0','0.0')");
    //  $q->execute();
        print "Successfully processed $fileName<br>";

コメントからわかるように、これを使用してPDOを試したところ、同じエラーが発生しました。愚かなことに、mysql_コマンドに戻ると役立つと思いました。

スクリプトが毎回同じ画像で文句を言うのに役立つ場合でも、各画像は数十キロバイト、最大でも数百キロバイトにすぎません。

4

3 に答える 3

30

MySQL 構成ファイルの " max_allowed_packet"の値を確認してください。my.cnf

于 2012-07-20T16:32:28.787 に答える
1

これは、PHPスクリプトが処理中のものを処理するのに時間がかかりすぎ、サーバーへの接続がタイムアウトしたために発生します。いくつかの解決策があります。

  • 接続がまだ確立されていることを確認し、必要に応じて再接続します(mysql_connectこれを行うための組み込み機能があります)
  • 使用しますmysql_pconnect(ただし、接続は閉じられないため、最後に接続を閉じることを忘れないでください)
  • タイムアウトを回避するために、スクリプトの実行時間を改善してください。
于 2012-07-20T16:28:04.280 に答える
1

を使用mysql_ping()して、接続がまだ接続されているかどうかを確認したり、そうでない場合は再接続を試みたり、接続が失われる前にスクリプトがどれだけ進んだかを示すエラー メッセージを作成したりできます。

于 2012-07-20T16:37:24.123 に答える