首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每个使用数据库的函数中,我需要一个php mysql连接吗?

问在每个使用数据库的函数中,我需要一个php mysql连接吗?
EN

Stack Overflow用户
提问于 2012-04-18 19:47:25
回答 5查看 28K关注 0票数 11

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

代码语言:javascript
复制
//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文件吗?或者我需要对每个使用数据库的函数执行此操作。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-18 19:51:07

创建一个config.php并添加代码:

config.php:

代码语言:javascript
复制
$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

代码语言:javascript
复制
<?php
require_once 'config.php';

mysqli_query($sqlApiAccess) or die('Error, insert query failed');
?>
票数 12
EN

Stack Overflow用户

发布于 2012-04-18 20:24:15

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

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

Database.class.php

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?php
       include 'singleton.php';
       $pDatabase = Database::getInstance();

       $result = $pDatabase->query('...');
?>
票数 13
EN

Stack Overflow用户

发布于 2012-04-18 19:51:04

不需要在每个函数中建立连接。您需要创建一个像conn.php这样的连接文件,并进行连接查询。

代码语言:javascript
复制
<?php
mysql_connect("localhost", "admin", "1admin") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
?>

在您想要连接数据库的任何其他文件中,只需编写以下代码行

代码语言:javascript
复制
<?php include("conn.php");?> 

在此文件上,您可以运行任何查询。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10208691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档