[ BLACK_SWORD @ 13.06.2011. 19:41 ] @
Pozdrav!

Počeo sam da učim OOP.

Kreno sam da pravim jednu klasu preko koje ću se spajati na mysql bazu, napravio sam spajanje sa metode spajanje sa mysql serverom i odabir baze
Code:

<?php

class BazaPodataka
{
    public $server = 'localhost';
    public $korisnicko_ime = null;
    public $lozinka = null;
    public $ime_baze = null;

    public $db;

    function __construct() {}

    // Spajanje sa mysql serverom.
    public function spajanje_sa_serverom($server, $korisnicko_ime, $lozinka)
    {
        $this->server = $server;
        $this->korisnicko_ime = $korisnicko_ime;
        $this->lozinka = $lozinka;

        return $this->db = @mysql_connect($this->server, $this->korisnicko_ime, $this->lozinka)
        or die('Ne mogu se spojiti sa serverom!');
    }

    // Spajanje sa mysql bazom.
    public function spajanje_sa_bazom($baza)
    {
        $this->ime_baze = $baza;

        return mySQL_select_db($this->ime_baze, $this->db)
        or die('Nemogu se spojiti sa bazom!');
    }

    public function spajanje_prekini()
    {
        return mysql_close($this->db);
    }
}

?>

<?php
$s = new BazaPodataka();

// Spajanje sa severom.
$s->spajanje_sa_serverom('localhost', 'korisnicko_ime', 'lozinka');

// Odabir baze.
$s->spajanje_sa_bazom('baza');
?>


Šta mislite dali sam počeo dobro ovo raditi?

Hvala na odgovoru!
[ VladaSu @ 13.06.2011. 23:07 ] @
DB klasa ako hoces jednostavno bolje da ti je staticna (static).
Odmah pisi sve na engleskom.

Metode spajanje_sa_bazom i spajanje_sa_serverom imaju parametre koje prebacujes u public varijable klase.
Cemu (za sada) to prebacivanje kada se nigde drugde ne koriste?
Zasto su public te promenljive?

mysql_connect ne vraca db nego link koji kasnije mozes da korisis u vecini mysql naredbi u php-u.

Zanimljivo da si krenuo preko foruma iako ima dosta gotovih db. Nastavi... :)
[ BLACK_SWORD @ 14.06.2011. 00:03 ] @
Dali je vako bolje?

sad sam stavio u konstruktor da se odmah spaja sa bazom i serverom
Code:

<?php

class database
{
    private $host = 'localhost';
    private $userName = null;
    private $password = null;
    private $databaseName = null;

    private $db;

    // Spajanje sa serverom.
    function __construct($host, $userName, $password, $databaseName)
    {
        $this->host = $host;
        $this->userName = $userName;
        $this->password = $password;
        $this->databaseName = $databaseName;

        $this->db = @mysql_connect($this->host, $this->userName, $this->password)
            or die('Ne mogu se spojiti sa serverom!');
        mysql_select_db($this->databaseName, $this->db)
            or die('Nemogu se spojiti sa bazom!');
    }

    // Automatski zatvara konekciju na kraju svega.
    public function __destruct() 
    {
        if(is_object($this->db))
        {
            mysql_close($this->db);
        }
    }
}

?>
[ BLACK_SWORD @ 15.06.2011. 20:11 ] @
evo vako sam napravio spajanje sa bazom
Code:

<?php

class database
{
    private $db;
    private $query_id;

    public function __construct($host, $userName, $password, $databaseName)
    {
        $this->db = @mysql_connect($host, $tuserName, $password);

        if(! $this->db)
        {

        }

        if(! mysql_select_db($databaseName, $this->db))
        {

        }
    }

    // Automatski zatvara konekciju na kraju svega.
    public function __destruct() 
    {
        if(is_object($this->db))
        {
            mysql_close($this->db);
        }
    }

    // Mysql upit.
    public function query($s)
    {
        $this->query_id = mysql_query($s, $this->db);

        if(! $this->query_id)
        {

        }

        return $this->query_id;
    }
}

?>


a dali mi neko može reći kako da napravim da upisujem greške u bazu dal da napravim posebnu klasu ?
[ dakipro @ 15.06.2011. 20:23 ] @
Da upise gresku u bazu na koju nije mogao da se konektuje? :)
Po principu "kljuc je u konzervi"... ne moras posebnu klasu, ali def posebnu metodu. Zavisi koliko zelis da "razvodnjis" klasu, ja bi je za pocetak stavio samo u neku metodu koju ako nesto pukne u ->query()