我正在创建一个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文件吗?或者我需要对每个使用数据库的函数执行此操作。
发布于 2012-04-18 19:51:07
创建一个config.php并添加代码:
config.php:
$hostname = 'host';
$username = 'username';
$password = 'password';
$dbname = 'dbname';
$conn = mysqli_connect($hostname, $username, $password) OR die('Unable to connect to database! Please try again later.');
mysqli_select_db($conn, $dbname);然后,在您希望使用mysql的任何文件中,添加以下内容:
script2.php
<?php
require_once 'config.php';
mysqli_query($sqlApiAccess) or die('Error, insert query failed');
?>发布于 2012-04-18 20:24:15
为了避免每次都创建新的数据库连接,我们可以使用-
我们需要一个数据库类来处理DB连接-
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('...');
?>发布于 2012-04-18 19:51:04
不需要在每个函数中建立连接。您需要创建一个像conn.php这样的连接文件,并进行连接查询。
<?php
mysql_connect("localhost", "admin", "1admin") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
?>在您想要连接数据库的任何其他文件中,只需编写以下代码行
<?php include("conn.php");?> 在此文件上,您可以运行任何查询。
https://stackoverflow.com/questions/10208691
复制相似问题