我的控制器调用请求数据库并返回结果的方法。不要重新连接控制器调用数据库
$connect = $this->connectBDD();
$rq = "SELECT naf, libelle FROM mytable WHERE naf ILIKE '$txt%'";
$t = $connect->prepare($rq); $t->execute();
$t->setFetchMode(\PDO::FETCH_OBJ);
$tab = array();
while($top = $t->fetch()) {
$tab[] = array(
"text" => $top->naf . ": " . $top->libelle,
"value" => $top->naf
);
}
$t->closeCursor();
return $tab;
问题来自第一行$ connect = $ this-> connectBDD();谁打开连接。它需要时间,约1次,而且由于这个方法经常被调用(自动完成系统),所以我需要记住连接在每次调用时不重新连接。
我试图记住在会话
if(null === $this->app['session']->get('ac')) {
$this->app['session']->set('ac', $this->connectBDD());
}
$connect = $this->app['session']->get('ac');
$rq = "SELECT naf, libelle FROM mytable WHERE naf ILIKE '$txt%'";
$t = $connect->prepare($rq); $t->execute();
$t->setFetchMode(\PDO::FETCH_OBJ);
$tab = array();
while($top = $t->fetch()) {
$tab[] = array(
"text" => $top->naf . ": " . $top->libelle,
"value" => $top->naf
);
}
$t->closeCursor();
return $tab;
$连接,但它更糟糕的是,因为如果我有一个无限循环......
所以,我怎么能叫我的方法,无需重新连接数据库在每次打电话?
感谢您的帮助
持久连接为什么它连接了一整秒?你的数据库服务器在同一台计算机上吗?如果是这样 - 你尝试127.0.0.1而不是本地主机? –
没有它调用一个不同的服务器 – Macbernie