在中,它给出了如何关闭连接的以下示例:
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// use the connection here
// and now we're done; close it
$dbh = null;
但是,如果在$dbh只有本地作用域的函数中使用它,是否必须将其设置为null,还是在函数返回时连接会关闭?
在下面的示例中,连接是否已关闭?
public function doDBWork(){
$dbh = new PDO('mysql
我转而使用PDO持久连接。我遇到了这样的情况: MySQL (正确地)在它的末端关闭一个连接(由于不活动),而PDO没有接上它,在它的缓存中保持可用的连接,从那时起--任何试图使用这个连接的尝试都会导致失败。
根据我所读到的,这种行为是“按设计”(在我看来,PDO似乎不支持持久连接)。
不管怎样,我想知道PDO是否会关闭其池中的连接。我知道它不检查连接的状态,但是是否有任何类型的计时器或定期清理,可配置的或硬编码的?
如果我有一些类似于这个模拟示例的代码 function openDatabaseConnection() {
$pdo = new PDO();
}
openDatabaseConnection();
while (true) {
// is there still an open database connection?
} Php和mysql将在脚本末尾关闭到任何打开的数据库连接的连接,但是当数据库连接的作用域是函数时,到数据库的连接是否会一直保持到脚本结束?在代码的while (true) {}部分,是否仍然存在db连接?有没有可能php在内部将指向DB变量的指针作为永久资
嗨,我有一个php守护进程来处理来自rabbitmq的请求。
一天后,由于错误,MySQL已经消失,它无法再执行。
PHP Warning: PDOStatement::execute(): MySQL server has gone away in /var/www/daemon/www/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Statement.php on line 239
PHP Warning: PDOStatement::execute(): Error reading resu
我可以通过提供-ssl选项,而无需任何证书,从Sequel (参见)和控制台连接到MySQL/MariaDB。
$ mysql -u myusername -p -h 10.123.45.67 --ssl
Enter password:
Welcome to the MariaDB monitor.
不使用--ssl进行连接是不可能的,因为用户需要SSL:
$ mysql -u myusername -p -h 10.123.45.67
Enter password:
ERROR 1045 (28000): Access denied for user 'myusername'