» »

Edined vzorec + statement-i [PHP]

Edined vzorec + statement-i [PHP]

JesusChrist ::

Zdravo!

Trenutno v svoji aplikaciji uporabljam vzorec edinec + klasični query-ji. Sedaj bi rad uvedel prepared statemente, ampak se mi zdi malo zapleteno vse skupaj in ne vem kako naj le-te uvedem.

Koda edina:
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", $hostname = "localhost", $hostport = "3306", $username = "root", $password = "test")
    {
        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;
        }
    }
}


Uporaba:
$DB = DB::Open();
$DB->qry("SQL");


Kako sedaj uvesti v zgornji razred statemente?
remember, the clock is ticking. run like no tomorrow.

keworkian ::

Naorbe prebral
Obscenities in B-Flat

Zgodovina sprememb…

krho ::

WTF je edinec? singelton? Ljudje božji a bi nehali to prevajat prosim. ;((
Prepared stavki preko navadnega vmesnika ne gredo. boš lepo popravit kodo in uporabiti PDO.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[MySQL]Stored procecdure za kreacijo baze

Oddelek: Programiranje
6653 (542) Spura
»

php skripta za registracijo uporabnikov

Oddelek: Izdelava spletišč
162080 (1661) skorpio
»

OleDb in visual studio .net

Oddelek: Programiranje
162280 (2059) Kovalchuk
»

[Java] Shranjevanje podatkov in datotek

Oddelek: Programiranje
71222 (1175) Vesoljc
»

[C++] for {}

Oddelek: Programiranje
291700 (1394) Gundolf

Več podobnih tem