,我得到一个错误2006服务器已经消失。如何指定Doctrine在执行使用Doctrine访问数据库的长脚本时必须使用mysqli-connection
我已经在一个不使用Doctrine的网站上解决了这个问题。那里的解决方案是使用mysqli而不是普通的mysql驱动程序。
我该如何告诉Doctrine使用mysqli-driver来避免2006-错误?
谢谢!
,我得到一个错误2006服务器已经消失。如何指定Doctrine在执行使用Doctrine访问数据库的长脚本时必须使用mysqli-connection
我已经在一个不使用Doctrine的网站上解决了这个问题。那里的解决方案是使用mysqli而不是普通的mysql驱动程序。
我该如何告诉Doctrine使用mysqli-driver来避免2006-错误?
谢谢!
我认为你不能这样做,因为Doctrine使用PDO而不是旧的mysqli或mysql扩展。
你可以试试这个:
$masterConn->getDbh()->setAttribute(PDO::ATTR_PERSISTENT, false);
如果使用准备好的语句,添加此,
$masterConn->getDbh()->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
嗨,我试过 $ conn = Doctrine_Manager ::连接($胸径); $ conn-> getDbh() - > setAttribute(PDO :: ATTR_PERSISTENT,false); $ conn-> getDbh() - > setAttribute(PDO :: ATTR_EMULATE_PREPARES,true); 但仍然得到了2006服务器已经消失的错误:-( – murze 2010-04-26 07:33:06
主义可以说通过指定mysqli
驱动程序使用的mysqli。请参阅the documentation for the Mysqli driver's options
在这种情况下:如何避免使用PDO的2006年错误? – murze 2010-04-23 13:09:05
@murze:当你运行特定的查询时它会发生,还是在很长时间后失败?我曾经在服务器的max_allowed_packet mysql设置过低的地方使用过。但是这并不能解释为什么它在mysqli – 2010-04-23 13:22:10
中起作用,当我在api-call到mailchimp之后尝试执行doctrine命令时发生。 api调用的答案大约需要50秒。 – murze 2010-04-23 13:28:23