Соединения с БД класса PHP - PullRequest
       4

Соединения с БД класса PHP

0 голосов
/ 03 августа 2011

У меня есть класс, в который я хотел бы включить пару подпрограмм БД вместо встроенных.

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();

?>

Сведения о подключении к базе данных я хочу сохранить в отдельном конфигурационном файле, который включен в загрузку документа.

У меня проблемы:

Получение значений конфигурации базы данных внутри класса. Попытка присоединить отдельный класс базы данных, чтобы отделить его от родительского.

Любые предложения о подходе и / или решении.

Ответы [ 3 ]

1 голос
/ 03 августа 2011

Вы можете установить переменные конфигурации в global scope

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...);
0 голосов
/ 03 августа 2011

Вы спрашиваете, как читать из файла конфигурации?Попробуйте 'parse_ini_file'.http://php.net/manual/en/function.parse-ini-file.php

0 голосов
/ 03 августа 2011

Самый простой метод - это сделать include('config.php') внутри функции connectdb (или вызывающей ее функции). Когда вы include файл PHP (не забудьте включить <?php открытый тег!), Переменные будут объявлены в рамках функции, выполняющей включение. Так, например, __construct () (обратите внимание, что у вас есть опечатка) может быть:

function __construct() {
    include('config.php');
    $this->connectdb($dbhost,$dbname,$dbuser,$dbpass);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...