Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OO PHP][MySql] Problem z polączeniem z DB
Forum PHP.pl > Forum > Przedszkole
gorky_park
Witam,

może zacznę od konkretów:

1. Mamy plik z konfiguracja polaczenia z MySql:

  1. <?php
  2. //configuration of the connection to MYSQL DB
  3. $config['db']['host'] = 'localhost';
  4. $config['db']['user'] = 'admin';
  5. $config['db']['password'] = 'password';
  6. $config['db']['name'] = 'database';
  7. ?>


otoz ten plik jest includowany do pliku, ktory zawiera klase, łaczaca się z bazą danych.
Oto wycinek klasy(własciwa metoda) DBConnect za to odpowiedzialny:
  1. <?php
  2. require_once('globalConfig.php');
  3.  
  4. class dbconnect {
  5.    
  6.    private $_handle;
  7.    
  8.    public function __construct() {
  9.        global $config;
  10.        
  11.            $connection = "'".$config['db']['host']."'";
  12.            $connection .= ', '."'".$config['db']['user']."'";
  13.            $connection .= ', '."'".$config['db']['password']."'";
  14.        
  15.                    $this -> _handle = mysql_connect($connection);
  16.                    var_dump($this -> _handle);
  17.                        //if(!is_resource($this -> _handle)) {
  18.                            //throw new Exception ("Cannot connect to database");
  19.                        //}
  20.            $dbname = $config['db']['name'];
  21.                    
  22.                    $this -> _handle = mysql_select_db($dbname);
  23.                        //if(!is_resource($this -> _handle)) {
  24.                            //throw new Exception ("Cannot connect to database");
  25.            //}
  26.    }
  27. ?>


Jak widac polaczenie zostaje wywolane automatycznie gdyz metoda jest jednoczesnie konstruktorem klasy, lecz nie ma to znaczenia w tym wypadku. Apache w momencie dostepu do metody wywala blad o tresci:


Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host ''localhost', 'admin', 'password'' (11004)

Mozna by pomyslec, iz nie jest wlasciwie wygenerowany string z globalnej tablicy lecz wystarczy go wydrukowac na wyjscie lub nawet "var_dumpować" aby sie przekonać, iż tworzy zbior właściwych parametrów dla f-cji mysql_connect.

W takim razie moje pytanie: czy ktos wie moze, dlaczego tak źle się dzieje? winksmiley.jpg Czy jest ktos w stanie wspomóc dobrą radą?

Z góry serdecznie dziękuję za pomoc.
blooregard
Bo robisz z connection 1 string i przekazujesz go jako pierwszy parametr dla mysql_connect. A mysql_connect spodziewa się trzech parametrów. Musisz serwer,usera i hasło przekazać jako 3 osobne zmienne i wtedy będzie ok.

Masz to nawet w komunikacie błędu:
Cytat
Unknown MySQL server host ''localhost', 'admin', 'password''
MWL
mysql_connect przyjmuje kilka wartości, a nei jak u ciebie (1 string zrób tak:)
  1. <?php
  2. $this -> _handle = mysql_connect($config['db']['host'], $config['db']['user'], $config['db']['password']);
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.