gpt4 book ai didi

php - 我是否需要在每个使用数据库的函数中建立一个 php mysql 连接?

转载 作者:IT王子 更新时间:2023-10-29 00:38:14 24 4
gpt4 key购买 nike

我正在创建一个 php restful API,目前我在每个函数中都有数据库连接信息。

//Connect To Database
$hostname=host;
$username=username;
$password=password;
$dbname=dbname;

mysql_connect($hostname, $username, $password) OR DIE('Unable to connect to database! Please try again later.');
mysql_select_db($dbname);
mysql_query($sqlApiAccess) or die('Error, insert query failed');

最好的方法是什么,每个 php 文件可以有一个数据库连接吗?还是我需要为每个使用数据库的函数执行此操作。

最佳答案

为了避免每次都创建一个新的数据库连接,我们可以使用 Singleton design pattern -

我们需要一个数据库类——来处理数据库连接——

Database.class.php

<?php
class Database
{
// Store the single instance of Database
private static $m_pInstance;

private $db_host='localhost';
private $db_user = 'root';
private $db_pass = '';
private $db_name = 'databasename';

// Private constructor to limit object instantiation to within the class
private function __construct()
{
mysql_connect($this->db_host,$this->db_user,$this->db_pass);
mysql_select_db($this->db_name);
}

// Getter method for creating/returning the single instance of this class
public static function getInstance()
{
if (!self::$m_pInstance)
{
self::$m_pInstance = new Database();
}
return self::$m_pInstance;
}

public function query($query)
{
return mysql_query($query);
}

}
?>

&我们可以从其他文件中调用它-

other.php

<?php
include 'singleton.php';
$pDatabase = Database::getInstance();

$result = $pDatabase->query('...');
?>

关于php - 我是否需要在每个使用数据库的函数中建立一个 php mysql 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10208691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com