0

ログ テーブルにログ レコードを挿入しようとしています。しかし、どういうわけか、フィールド値の長さが 199 文字を超えると、Apache が再起動し、ブラウザに net::ERR_CONNECTION_RESET と表示されます。Zend Framework を使用しているので、次のコード行でレコードを挿入します。

    $db = Global_Db_Connection::getInstance();
    $sql = "INSERT INTO log_table (log) VALUES ('ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd')";
    $db->query($sql);

フレームワークを使用しない場合は、次を使用します。

    mysql_query($sql);

それから私は何の問題もありません。

Zend でこの制限を修正する方法を教えてもらえますか?

これを FreeBSD 同じ問題で試しました。また、存在しないテーブルに挿入しようとすると、同じエラーが返されることもわかりました。値を短くした後でのみ、テーブルが存在しないというエラーが発生します。

4

1 に答える 1

0

答えるのが遅くなるかもしれませんが、私には魂があります。私が見つけたzendの2つの解決策:

  1. $db->getConnection()->query($sql); // use getConnection()

  2. $db->exec($sql);

この問題は、メモリ スタック サイズが原因です。Linux ではスタックは必要に応じて大きくなりますが、Windows と Mac ではスタック サイズが原因でこの問題が発生します。これについては、php.net で提起されたチケット (ここ) を参照してください。楽しみ!!!

于 2013-07-08T08:48:13.970 に答える