簡體   English   中英

PHP類數據庫連接

[英]PHP Class DB Connections

我有一個我想包含幾個db例程而不是內聯的類。

class Classica{

public $dbhost;
public $dbname;
public $dbuser;
public $dbpass;


__function construct(){
    //hook connectdb() upon contruct.
}

#connect to database
    public function connectdb($dbhost,$dbname,$dbuser,$dbpass){        

        $link = mysql_connect($dbhost,$dbuser,$dbpass);
        if (!$link) {
          die('Could not connect: ' . mysql_error());
        }else {
            //echo 'Connected Successfully to Database<br>';
        }
        @mysql_select_db($dbname) or die( "Unable to select database");
    } 

    #read database
    function readdb(){        
    }    
    #update database
    private function updatedb(){        
    }
    #close database connection
    function closedb(){
        mysql_close();    
    }

}

config.php

$dbhost = 'localhost';
$dbname = 'dem';
$dbuser = 'root';
$dbpass = '';

index.php

<?php
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
session_start();
include('config.php');
include('classica.php');
$obj = new classica();

?>

我想在一個單獨的配置文件中維護數據庫連接的詳細信息,該文件包含在文檔加載中。

我遇到的問題:

檢索類內部的數據庫配置值。 嘗試附加一個單獨的數據庫類以與父類分開。

有關方法和/或解決方案的任何建議。

您可以在全局范圍內設置配置變量

public function __construct()
{
    global $dbhost, $dbname, etc... ;
    $this->connectdb($dbhost, $dbname, etc...);

或使用常量 ,其范圍是全局的:

config.php

define('MYAPP_DBHOST', 'localhost');
define('MYAPP_DBNAME', 'dem');

在你的課上:

public function __construct()
{
    $this->connectdb(MYAPP_DBHOST, MYAPP_DBNAME, etc...);

最簡單的方法是在connectdb函數(或調用它的函數include('config.php')執行include('config.php') )。 當您include一個PHP文件(切記要包含<?php open標簽!)時,這些變量將在進行包含的函數范圍內聲明。 因此,例如__construct()(請注意,您有錯字)可能是:

function __construct() {
    include('config.php');
    $this->connectdb($dbhost,$dbname,$dbuser,$dbpass);
}

您是否在詢問如何從配置文件讀取? 嘗試“ parse_ini_file”。 http://php.net/manual/zh/function.parse-ini-file.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM