2012-07-10 102 views
0

我试图在我的日志表中插入日志记录。但不知何故,当字段值长度超过199个字符,我的Apache重新启动,我的浏览器说net :: ERR_CONNECTION_RESET。 我使用Zend框架,所以我插入我的纪录,下面的代码行:zend查询最大字段长度

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

如果我不使用框架,使用:

mysql_query($sql); 

然后我没有任何问题。

任何人都可以告诉我如何解决这个限制在Zend?

在FreeBSD上试过这个同样的问题。我还发现,当试图将其插入到不存在的表中时,它将返回相同的错误。只有在缩短该值后,才会出现该表不存在的错误。

+0

您是否尝试使用本机PDO? – 2012-07-10 08:56:38

+0

我不完全明白你的意思,但我在我的ini文件中有database.adapter = pdo_mysql – fr0sty 2012-07-10 14:52:11

+0

Apache/PHP在Windows上运行吗? – drew010 2012-07-10 17:24:20

回答

0

可能迟到回答,但我有灵魂。对于Zend的两个解决方案,我发现:

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

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

这个问题是因为内存堆栈大小。在Linux上,堆栈根据需要增长,但在Windows上,由于堆栈大小,此问题会冒泡。为此,在php.net中提出了一张票(here)看一看。请享用!!!