什么是最好的方式编写PHP mysql打开和关闭连接


what's the best way writing php mysql open and close connection

我正在尝试新兴他们(php mysql连接),以避免冗余。但是这里的主要问题是,每当使用"mysql_real_esacpe_string"时,它需要mysql_connect在顶部,这可能导致在函数中出现失败?

的例子:

    function runquery($query){
        connect(); //Connecting database
        issue_query($query); //Calling mysql_query function
        disconnect($link); //Calling mysql_close function
    }

您不应该为每个查询打开和关闭连接。除非在完成与数据库的通信后进行一些长时间的处理,否则根本不需要关闭连接;当执行结束并释放资源时,它将被关闭。在发出查询之前,每次重新连接都涉及到建立TCP连接、执行握手和身份验证的大量开销。

你也可以将处理mysql连接的类设置为singleton。

class mysqlController {
private $connection;
private $db;
private static $instance;
private function __construct() {
}
public static function getInstance() {
    if(!self::$instance) { // First time this method is called
        self::$instance = new mysqlController();
    }
    return self::$instance;
    }
public function openConnection($db_host, $db_user, $db_password, $db_name)
{
    if(!$this->connection)
    {
        $this->connection = mysql_connect($db_host, $db_user, $db_password);
        if(!$this->connection)
        {
            die('Database error: ' . mysql_error());
        }
        else
        {
            $this->db = mysql_select_db($db_name, $this->connection);
            if(!$this->db)
            {
                die("Database error: " . mysql_error());
            }
        }
    }
}
}

使用getInstance()函数获取实例

$connection = mysqlController::getInstance();
$connection->openConnection('host', 'user', 'pass', 'database');
$connection->query(.....); // For example

当然你也需要在这里创建查询函数等