Php 我如何指定Doctrine必须使用mysqli连接

Php 我如何指定Doctrine必须使用mysqli连接,php,doctrine,mysqli,Php,Doctrine,Mysqli,在执行一个使用条令访问数据库的长脚本时,我发现一个错误,服务器已经消失了 我已经在一个不使用教义的网站上解决了这个问题。解决方案是使用mysqli而不是普通的mysql驱动程序 我如何告诉Dority使用mysqli驱动程序以避免2006年的错误 谢谢 我认为您无法做到这一点,因为Doctrine使用的是旧的mysqli或mysql扩展,而不是旧的mysqli或mysql扩展。您可以尝试以下方法: $masterConn->getDbh()->setAttribute(PDO::AT

在执行一个使用条令访问数据库的长脚本时,我发现一个错误,服务器已经消失了

我已经在一个不使用教义的网站上解决了这个问题。解决方案是使用mysqli而不是普通的mysql驱动程序

我如何告诉Dority使用mysqli驱动程序以避免2006年的错误


谢谢

我认为您无法做到这一点,因为Doctrine使用的是旧的mysqli或mysql扩展,而不是旧的mysqli或mysql扩展。

您可以尝试以下方法:

$masterConn->getDbh()->setAttribute(PDO::ATTR_PERSISTENT, false);
如果使用了准备好的语句,则添加以下内容:

$masterConn->getDbh()->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

通过指定
Mysqli
驱动程序,可以告诉条令使用Mysqli。请参阅

@murze:是在运行特定查询时发生的,还是在长时间后才失败?我曾经遇到过这样的情况,服务器的max_allowed_数据包mysql设置太低。但这并不能解释为什么它在mysqliit中工作,当我尝试在对mailchimp的api调用后执行一个条令命令时就会发生这种情况。api调用的回答大约需要50秒。@murze:您可以尝试更改mysql服务器上的等待超时,例如运行sql:
设置全局等待超时=60
。你的PHP版本也是最新的吗?我确实在PDO/MySQL和PHP版本5.1My PHP版本5.2.12中读到过类似的问题。不幸的是,我在共享主机上,无法更改任何globel mysql-parameters。可以通过指定
Mysqli
驱动程序告诉我使用Mysqli。您好,我尝试了$conn=doctor\u Manager::connection($dbh)$conn->getDbh()->setAttribute(PDO::ATTR_PERSISTENT,false)$conn->getDbh()->setAttribute(PDO::ATTR\u EMULATE\u PREPARES,true);但仍然得到了2006年服务器已经消失的错误:-(