【发布时间】:2011-09-13 00:17:06
【问题描述】:
我有以下代码,从管理区域保存时会创建 HTML 内容正文的副本。问题是如果我将 max_length 设置为 160 以上,我会收到连接重置错误。
我的代码有问题吗?或者这对于 apache/php 来说太简单了?
content_body 可以是从 TinyMCE 输入的一大块 HTML 文本。
if($oRequest->get("contents.content_body")){
$max_length = 255;
$long_text = strip_tags(trim($oRequest->get("contents.content_body")));
if(strlen($long_text) > $max_length){
$short_text = (substr($long_text,0,$max_length));
} else {
$short_text = $long_text;
}
try {
$db = Db_Connections::getInstance()->getConnection();
$sql = "UPDATE `contents` SET `content_body_short` = '".mysql_real_escape_string($short_text)."' WHERE content_id = ".(int)$contentID;
$db->query($sql);
} catch (Exception $e) {
throw $e;
}
}
编辑:
我已尝试添加超时 (0),但这并没有什么不同。
错误日志不确定这是否有帮助
[Tue Sep 13 11:10:25 2011] [notice] Parent: child process exited with status 255 -- Restarting.
[Tue Sep 13 11:10:26 2011] [notice] Apache/2.2.17 (Win32) PHP/5.3.4 configured -- resuming normal operations
[Tue Sep 13 11:10:26 2011] [notice] Server built: Oct 24 2010 13:33:15
[Tue Sep 13 11:10:26 2011] [notice] Parent: Created child process 2964
[Tue Sep 13 11:10:26 2011] [notice] Child 2964: Child process is running
[Tue Sep 13 11:10:26 2011] [notice] Child 2964: Acquired the start mutex.
[Tue Sep 13 11:10:26 2011] [notice] Child 2964: Starting 64 worker threads.
[Tue Sep 13 11:10:26 2011] [notice] Child 2964: Starting thread to listen on port 80.
编辑:我发现这只发生在我的本地开发环境中,并且在我的 Debain Squeeze 服务器上完美运行
本地设置:
- WAMP 2.1
- Apache 2.2.17
- PHP 5.3.4
- MYSQL 5.1.53
- pdo_mysql: mysqlnd 5.0.7-dev - 091210 - $Revision: 304625 $
- pdo_sqlite:SQLite 库 3.7.3
【问题讨论】:
-
你检查过你的日志文件了吗?
-
编辑:从日志中添加了错误日志,尽管它看起来并不相关。
-
您是否已经检查了 php.ini 中的设置?另外,您的 content_body_short 数据库字段的大小是多少——它是如何定义的?
-
php.ini 中的哪个设置?最好我更喜欢将此设置保留为默认设置,以便它可以在其他服务器上运行。 content_body_short 是一个 varchar(255)
-
255 的大小太短,不会对 Apache 或 PHP 造成任何问题。只是一个问题,您为什么要捕获异常以重新抛出它而不进行任何处理?是否有可能是 SQL 部分存在问题而您因此看不到它?如果有异常,您可以打印异常的内容并用它更新您的问题吗?