Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自PHP的MSSQL数据库连接(sqlsrv_关闭连接问题)_Php_Database_Sql Server 2008 - Fatal编程技术网

来自PHP的MSSQL数据库连接(sqlsrv_关闭连接问题)

来自PHP的MSSQL数据库连接(sqlsrv_关闭连接问题),php,database,sql-server-2008,Php,Database,Sql Server 2008,对于从PHP到MSSQL的数据库连接,我创建了以下代码。有人能告诉我,代码中的_destruct()函数是否自动工作并关闭数据库连接?这是我的密码: <?php class db{ private $connection; private $server, $username, $password, $database, $charset; public function __construct($server, $username

对于从PHP到MSSQL的数据库连接,我创建了以下代码。有人能告诉我,代码中的_destruct()函数是否自动工作并关闭数据库连接?这是我的密码:

<?php
    class db{
        private $connection;
        private $server, $username, $password, $database, $charset;

        public function __construct($server, $username, $password, $database, $charset){
            $this->server = $server;
            $this->username = $username;
            $this->password = $password;
            $this->database = $database;
            $this->charset = $charset;

            $connectionInfo = array('UID'=>$this->username,
                                    'PWD'=>$this->password,
                                    'Database'=>$this->database,
                                    'CharacterSet'=>$this->charset);

            $this->connection = sqlsrv_connect($this->server, $connectionInfo);

            if ($this->connection === false){
                echo '<h2>Unable to connect to database</h2><br/>';
                die (print_r(sqlsrv_errors(), true));
            };
        }

        public function __destruct(){
            sqlsrv_close($this->connection);
        }

        public function query($query, $params=null){
            $result = sqlsrv_query($this->connection, $query, $params);

            if (!$result){
                echo 'Error in statement execution.\n';
                die(print_r(sqlsrv_errors(), true));
            }

            return $result;
        }
    }

您的连接将被关闭,除非未调用
\u destruct
方法。以下情况导致不执行
\uu自毁

  • 如果在另一个析构函数中调用“exit”
  • 取决于PHP版本:如果在“register\u shutdown\u function”函数中调用了“exit”
  • 如果代码中有致命错误
  • 如果在另一个析构函数中引发异常
  • 如果尝试在析构函数中处理异常(PHP>=5.3.0)

选中此项

是的,当对象的作业完成时,析构函数可能会关闭您的连接,所以我如何在此处输入明确的结果…您可以创建一个函数并在其中输入关闭代码,然后在页面末尾调用该函数。。。