Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Klasa za spajanje sa bazom

[es] :: PHP :: PHP za početnike :: Klasa za spajanje sa bazom

[ Pregleda: 2684 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BLACK_SWORD

Član broj: 212173
Poruke: 171
93.157.198.*

Sajt: www.artwebdizajn.com


+3 Profil

icon Klasa za spajanje sa bazom17.07.2011. u 18:48 - pre 155 meseci
Pozdrav!

Dali mi neko može reći jel dobra ova klasa?

Code:

<?php

class database
{
    private $link;

    function __construct($host, $user, $password, $base_name, $character_set)
    {
        $this->link = @mysql_connect($host, $user, $password)
            or die($this->error());

        mysql_select_db($base_name, $this->link)
            or die($this->error());

        mysql_set_charset($character_set, $this->link);
    }

    function __destruct()
    {
        mysql_close($this->link);
    }

    private function error()
    {
        return mysql_error($this->link);
    }

    public function query($sql, $return_format = 0)
    {
        $query = mysql_query($sql, $this->link)
            or die($this->error());

        switch($return_format)
        {
            case 1:
                $query = mysql_fetch_row($query);
                return $query;
                break;

            case 2:
                $query = mysql_fetch_array($query);
                return $query;
                break;

            case 3:
                $query = mysql_fetch_row($query);
                $query = $query[0];
                return $query;
                break;

            default:
                return $query;
                break;
        }
    }
}

?>

<?php

$db = new database('localhost', 'root', '', 'test', 'utf8');

$i = $db->query("SELECT `id_user` FROM `users` WHERE `id_user` = 1 ", 2);

echo $i['id_user'];

?>


sve radi kako treba, samo me zanima dali je ovo ispravno oop?

Hvala!
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
*.dynamic.sbb.rs.

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Klasa za spajanje sa bazom17.07.2011. u 22:18 - pre 155 meseci
Pozdrav,
pa te mysql_* funkcije nisu bas OO, pogledaj PDO.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 171
93.157.198.*

Sajt: www.artwebdizajn.com


+3 Profil

icon Re: Klasa za spajanje sa bazom17.07.2011. u 23:00 - pre 155 meseci
e baš ne kontam nikako ovaj oop, kako god sam kreno praviti klasu za spajanje sa bazom uvijek neko nađe neku manu

dali valja vako?

Code:

<?php
    abstract class Database_Object
    {
        protected static $DB_Name;
        protected static $DB_Open;
        protected static $DB_Conn;

        protected function __construct($database, $hostname, $hostport, $username, $password)
        {
            self::$DB_Name = $database;
            self::$DB_Conn = mysql_connect($hostname . ":" . $hostport, $username, $password);
            if (!self::$DB_Conn) { die('Critical Stop Error: Database Error<br />' . mysql_error()); }
            mysql_select_db(self::$DB_Name, self::$DB_Conn);
        }

        private function __clone() {}

        public function __destruct()
        {
//            mysql_close(self::$DB_Conn);  <-- commented out due to current shared-link close 'feature'.  If left in, causes a warning that this is not a valid link resource.
        }
    }

    final class DB extends Database_Object
    {
        public static function Open($database = DB_NAME, $hostname = DB_HOST, $hostport = DB_PORT, $username = DB_USER, $password = DB_PASS)
        {
            if (!self::$DB_Open)
            {
                self::$DB_Open = new self($database, $hostname, $hostport, $username, $password);
            }
            else
            {
                self::$DB_Open = null;
                self::$DB_Open = new self($database, $hostname, $hostport, $username, $password);
            }
            return self::$DB_Open;
        }

        public function qry($sql, $return_format = 0)
        {
            $query = mysql_query($sql, self::$DB_Conn) OR die(mysql_error());
            switch ($return_format)
            {
                case 1:
                    $query = mysql_fetch_row($query);
                    return $query;
                    break;
                case 2:
                    $query = mysql_fetch_array($query);
                    return $query;
                    break;
                case 3:
                    $query = mysql_fetch_row($query);
                    $query = $query[0];
                    return $query;
                default:
                    return $query;
            }
        }
    }
?>

 
Odgovor na temu

spezia

Član broj: 134818
Poruke: 355
*.dynamic.sbb.rs.



+6 Profil

icon Re: Klasa za spajanje sa bazom27.09.2011. u 06:41 - pre 153 meseci
Nije mi jasno tvoje pitanje da li je dobra ili da li je oop?
Naravno da je oop, cim imas klasu i par metoda.
Pazi ovako: zamisli da je oop prevozno sredstvo.
Bicikl je prevozno sredstvo kao i avion. Ali bicikl je vrlo prost. Avion se krece brze, mozes da spavas u njemu, da gledas tv, rucas i itd.
Ti si napisao bicikl, a za tvoju aplikaciju ti treba nesto bolje i kvalitetnije. Skini sa neta imas dosta dobrih klasa. Pocetnik ne treba da pise klase jer nece napisati dobro sto se vidi i iz tvog slucaja. Pokusavas da glumis nekog sa par godina iskustva. Treba ti vremena. Ako hoces da naucis oop skini dobru klasu pa je analiziraj a ne da pises svoju.

A da li je dobro napisana svakako da nije.
1) To sto nema PDO znaci da nemas neki nivo znanja, tako da mislim da ne postoji savrsena klasa na svetu. Uvek nesto fali i slicno
2) Ovde u tvojoj klasi si pokazao mnogo neznanja planiranju klase i fali ti dosta oop funkcionalnosti, tako da se nadam da ti nece pasti na pamet da je negde koristis vec ti sluzi samo za vezbu.

To sto nisi shvatio oop, razlog lezi u tome sto si citao neke tutorijale i imas velike rupe i stvari su ti nepovezane prilicno. OOP je citav jedan princip, a gornji kod pokazuje kako ni pod razno ne treba programirati. Ovde je problem nacin razmisljanja a ne da li radi ili ne radi.
 
Odgovor na temu

GMarco24
Senior web developer
Beograd

Član broj: 234565
Poruke: 88
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: Klasa za spajanje sa bazom27.09.2011. u 10:58 - pre 153 meseci
Divan komantar, kakav svaki pocetnik voli da dobije
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Klasa za spajanje sa bazom27.09.2011. u 11:04 - pre 153 meseci
Poceo sam i ja da pisem komentar na komentar al nisam hteo da budem grub pa sam ugasio browser na pola. Jedino konstruktivno u komentaru je da skine gotovu klasu da gleda, a kako je ovo forum za php pocetnike, zna on sam da ne zna dovoljno pa nema potrebe za tolikim potenciranjem da covek ne zna. To sto je postovao na forum i poceo sam da pravi klasu pokazuje da ima inicijative i zeli da uci, a to je cesto bitnije od iskustva, iskustvo se neminovno stice a inicijativa za ucenjem ne obavezno.

Molim ucesnike diskusije za buduce komentare primerene pocetnickom nivou znanja, ako neko nema sta konstruktivno da napise, neka se ne muci da kuca.
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
*.dynamic.isp.telekom.rs.



+6 Profil

icon Re: Klasa za spajanje sa bazom27.09.2011. u 11:07 - pre 153 meseci
bravo daki :)
 
Odgovor na temu

spezia

Član broj: 134818
Poruke: 355
*.dynamic.sbb.rs.



+6 Profil

icon Re: Klasa za spajanje sa bazom27.09.2011. u 11:25 - pre 153 meseci
Greska je moja zaboravio sam na kom sam delu foruma, tako da kritika na znanje korisnika ne stoji. Tacno.
Glavni savet nije da skine klasu. Glavni savet je da krene drugacije da razmislja u boljem pravcu.

 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Klasa za spajanje sa bazom

[ Pregleda: 2684 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.