PHP PDO Connections方法和MySQL中止客户端,中止连接值

时间:2015-08-06 10:07:35

标签: php mysql pdo

在特定的PHP - MySQL应用程序中,我一直遵循在公共方法中创建和销毁PDO连接的做法。

例如:

public function updateCustomerNumber($customer_id, $customer_number){
                $conn = new database_class();        
                $sql = "UPDATE customers set  number = :CUSTOMER_NUMBER where id = :CUSTOMER_ID";
                $query = $db->prepare($sql);
                $query->execute(array(':CUSTOMER_NUMBER' => $customer_number, ':CUSTOMER_ID'=>$customer_id));
                $conn->disconnect();
                if($query->rowCount()>0){
                    return true;
                } else {
                    return false;
                }
            }

所以我已经连接并断开了方法中的PDO连接。数据库连接方法:

public function connect() {
        if (!$this->con) {
            try {
                $this->db = new PDO("mysql:host=$this->db_host;dbname=$this->db_name;charset=utf8", $this->db_user,$this->db_pass);
                $this->db->exec("SET CHARACTER SET utf8");
                $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                $this->con = true;
                return $this->db;
            } catch (PDOException $e) {
                $error = $e->getMessage();
                echo $error;
            }
        } else {
            return $this->db;
        }
    }

数据库断开连接方法:

public function disconnect() {
        if ($this->con) {
            unset($this->db);
            $this->con = NULL;
            return true;
        } else {
            return false;
        }
    }

到目前为止我还没有遇到过任何问题,除了在一些方法中我忘记在脚本末尾断开PDO连接。但是,我不确定是否存在遵循这种方法的任何缺点。

我开始质疑这个方法的原因是我检查MySQL全局状态值。

Aborted_clients:32560 Aborted_connects:128080

按照定义,即使我们没有明确地关闭连接,PHP也会在脚本结束时自动关闭连接。

这些数字背后可能是什么原因?这种打开和关闭PHP PDO连接的方法是否正确?

0 个答案:

没有答案