【发布时间】:2011-10-15 04:47:04
【问题描述】:
我如何修改这个类来捕捉 MySQL Server Goes Away 的异常并重新连接?
<?php
class DBConn
{
private $conn;
public function __construct( $persistent = false )
{
try
{
$this->conn = new PDO( "mysql:host=localhost;dbname=test", 'test', "hoollaahaoo" );
$this->conn->exec( "SET CHARACTER SET utf8" );
$this->conn->setAttribute( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC );
if ( $persistent )
$this->conn->setAttribute( PDO::ATTR_PERSISTENT, true );
}
catch( PDOException $e )
{
return $e->getMessage();
}
}
public function getConn()
{
return $this->conn;
}
}
【问题讨论】:
-
抓住枪子的脖子,把他带回家。但说真的,我不应该通过重新初始化 PDO 对象来重新连接吗?我认为的关键问题是如何设置一个钩子来捕获查询和执行方法。
标签: php mysql error-handling pdo