Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]Baza danych - lamerskie pytanie ..., problem z połączeniem.
Blue007
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 13.11.2009

Ostrzeżenie: (0%)
-----


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

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
redelek
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

Ostrzeżenie: (0%)
-----


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


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
darko
post
Post #3





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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

Ten post edytował darko 2.12.2009, 22:41:05


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
CyberDuck_
post
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 15
Dołączył: 17.08.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:02