Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Laczenie z baza danych
Forum PHP.pl > Forum > PHP
sf
Witam,
Pisze właśnie skrypt newsowy i zastanawiam sie nad kwestią momentu łączenia z bazą danych. Czy utworzyć takowe połączenie przy logowaniu i utrzymywać je aż do wylogowania? Czy też uruchamiać je przy akcji na bazie danych.

Obecnie opiera się to na drugim sposobie. Jednakże napotkałem na mały błąd, który wyskakuje przy includowaniu dwóch plików po sobie (wszystkie akcje wywoływane są z index.php i plików do niego podłączonych). Mianowicie kod :

  1. <?php
  2. // ./actions/usun.php
  3. include 'mysql.php';
  4. $db = new DB;
  5.  
  6. // ..
  7.  
  8. // ./pages/usun.php
  9. include 'mysql.php';
  10. $db = new DB;
  11. ?>


Jak widzimy... pierwszy błąd to dwukrotne załadowanie pliku mysql.php, rozwiązanie poszło takie, że dodałem na początku index.php, a w plikach pousuwałem.

Drugi błąd to redeklaracja klasy DB... no i teraz nie wiem bo to takie nieeleganckie na początku index.php zadeklarowac $db... no i stąd mój post. Może ktoś mi przedstawić jakąś propozycje bazując na własnym doświadczeniu? smile.gif
Bielo
Zamiast include możesz użyć include_once wtedy nie zaincluduje pliku po raz drugi
Dabroz
Ja zawsze trzymam klasę do bazy danych w osobnym pliku i ja na poczatku inkluduje, ale sproboj swoje inklude'y zmienić na:

  1. <?php
  2.  
  3.  
  4. if (!defined('CDB'))
  5. {
  6. include 'mysql.php';
  7. $db = new DB;
  8. define('CDB',1);
  9. }
  10.  
  11. ?>
scanner
Cytat(sf @ 2004-07-19 18:31:06)
Drugi błąd to redeklaracja klasy DB... no i teraz nie wiem bo to takie nieeleganckie na początku index.php zadeklarowac $db...

Że niby czemu nieelegancje?

Pomyśl... kilkanascie razy chcesz inicjowac polczenie, kilkanascie includowac plik...
Brawa za wydajność.
Puciek
Ja proponuje mój sposób, znacyz łączysz na początku i rozłączasz na końcu - proste i niebanalne winksmiley.jpg
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.