Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]Baza danych - lamerskie pytanie ...
Forum PHP.pl > Forum > Przedszkole
Blue007
Witam.

Problem, z którym nie potrafie sobie poradzić... Chodzi o plik php, który łączy się z bazą danych (mysql). Chciałbym utworzyć jeden taki plik, z którego mogłyby korzystać inne skrypty. Do tej pory tworzyłem coś takiego :
Kod
class DataBase1
{
    
    function __construct()  
    {
        @$this->db1 = new mysqli('localhost', 'root', 'krasnal', 'logowanie');

        if(mysqli_connect_errno())
        {
            //echo 'blad loagowania';
        }else {
            //echo "polaczenie udane klasa.. ";  echo '<BR>';  
        }
    }

            function jakasTamFunkcjaDzialajacaNaBazie() {  }


Problem polega na tym, że do tej pory umieszczałem w jednej klasie funkcje łączenia z baza i funkcje wykonujace na niej operacje, przez co kod jest strasznie zagmatwany i nielogiczny. Chciałbym móc skonstuować oddzielną klase łączenia się z bazą danych i oddzielną klase z funkcjami wykonującymi na niej operacje. Nie wiem niestety czy coś takiego wogóle jest możliwe. Do tej pory starałem sie "wypluć" wskaźnik do bazy, ale nie wychodziło mi to najlepiej. Bardzo prosze o pomoc. smile.gif

redelek
Cześć,
Ja to robię za pomocą include.
Mamy jeden plik z funkcją łączenia się do bazy o taki przykład
plik nazywa się lib.php

  1. function polacz_db()
  2. {
  3. global $POLACZ, $M_HOST, $M_UZYTKOWNIK, $M_HASLO, $M_BAZA;
  4. if( $POLACZ )
  5. return $POLACZ;
  6. $POLACZ = mysql_connect( $M_HOST, $M_UZYTKOWNIK, $M_HASLO) or die('Nie mogę się połączyć z serwerem SQL' );
  7. mysql_select_db($M_BAZA, $POLACZ) or die('Nie mogę wybrać bazy SQL');
  8. return $POLACZ;
  9. }


w kolejnym pliku podłączasz go tak
  1. include ('lib.php');


Po sprawie. Niestety obiektowe programowanie jest jeszcze dla mnie obce smile.gif
darko
Co stoi na przeszkodzie, żeby mieć dwie klasy, jedną do zarządzania połączeniem (jeśli już musisz opakowywać klasę mysqli), a drugą, np. Sql do operacji na rekordach w bazie questionmark.gif

To nie twórz własnej klasy, wykorzystaj PDO, polecam exclamation.gif
CyberDuck_
Hmmm ... cosik mi sie wydaje, ze to nie zadziala, nie uwazasz ? blinksmiley.gif
Znaczy to zaincludowanie zadziala, ale chodzi mi o to ze brakuje wywolania tej funkcji.
Ja to robie tak :
  1. <?
  2.  
  3. $hostbazy="localhost";
  4. $nazwabazy="nazwa_bazy";
  5. $loginmysql="login";
  6. $haslomysql="haslo";
  7.  
  8.  
  9. $bladbazy = 'Brak polaczenia z baza danych';
  10.  
  11. @$connect = mysql_connect("$hostbazy", "$loginmysql", "$haslomysql") OR die ("$bladbazy");
  12. mysql_select_db("$nazwabazy");
  13. # mysql_query ("SET NAMES latin2");
  14.  
  15. ?>

Zapisany plik pod nazwa config.php. Wtedy wlasnie wystarczy include'config.php';
i po sprawie. Trzeba pamietac aby po wykonaniu operacji na bazie wykonac jeszcze
mysql_close(); .
Mozesz jeszcze do tego dopisac sprawdzanie czy jest skrypt wywolywany z
pod danej domeny czy na haslo po to zeby byc pewnym, ze nikt sie do tego
nie dobierze i po sprawie.
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.