gpt4 book ai didi

php - 推进 ORM : PDOException "Can' t create more than max_prepared_stmt_count statements"

转载 作者:行者123 更新时间:2023-11-29 23:49:08 28 4
gpt4 key购买 nike

我有大型 MySQL 数据库。我想一次获取 100 行,直到处理完所有数据库。

protected function doEcho($msg){
static $time, $start;
if (!$start) $start = time();

if (time() - $time > 0) {
echo $msg . "\n\n";
$time = time();
}
}

// ZF2 action
public function stuffAction() {
$request = $this->getRequest();
if (!$request instanceof ConsoleRequest){
throw new \RuntimeException('You can only use this action from a console!');
}

// Propel ORM generated Model UserQuery
$q = \UserQuery::create()->limit(100)->filterByProcessed(0);
$users = $q->find();

while ($users->count() ) {
foreach ($users as $user) {
$id = $user->getId();
$email = $user->getEmail();
$password = $user->getPassword();
$this->doEcho("$id - $email - $password");
// do stuff and set processed to 1
}

$q = \UserQuery::create()->limit(100)->filterByProcessed(0);
$users = $q->find();
}
}

我收到以下异常:

================================================== =======================

应用程序抛出异常!

Propel\Runtime\Exception\PropelException

无法执行 SELECT 语句 [SELECT user.ID, user.EMAIL, user.PASSWORD, user.PHONE, user.IP, user.PROCESSED, user.WHEN FROM user WHERE user.PROCESSED =:p1 限制 100]

//调试回溯

================================================== =======================

之前的异常:

PDO异常

SQLSTATE[42000]:语法错误或访问冲突:1461 无法创建超过 max_prepared_stmt_count 语句(当前值:16382)

//调试回溯

显然,原因是:

An application connecting to the database was preparing sql statements, executing them, then not closing them.

如何让 Propel 关闭语句?我确实使用 Propel 2: "propel/propel": "2.0.*@dev"

最佳答案

已解决:

use Propel\Runtime\Propel;
use Propel\Runtime\Connection\ConnectionWrapper;

// ...

Propel::getServiceContainer()
// connection_name - connection from propel config
->getReadConnection('connection_name')
->setAttribute(ConnectionWrapper::PROPEL_ATTR_CACHE_PREPARES, true);

关于php - 推进 ORM : PDOException "Can' t create more than max_prepared_stmt_count statements",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25741447/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com