Kendi yazdığım class,
ben şuan kullanıyorum oldukçada kullanışlı.

Kullanımı;
<?php
$_CFG["dir"]["log"] = './';
$cfg = array( "Server" => "localhost",
"User" => "root",
"Password" => "pass",
"Database" => "testdb",
"Prefix" => "tbl_",
);
$SQL = new mysql_class($cfg);
$SQL->TestMode = true;
$SQL->sorgu("SELECT * FROM test_db", __FILE__, __LINE__);
if ($SQL->satir()) {
    while($ROW = $SQL->satir()){
     //Kod...
    }
}
$SQL->sorgu("INSERT"__FILE__, __LINE__);
$Numrows = $SQL->eklenenid();

 $SQL->sorgu("UPDATE"__FILE__, __LINE__);
$Numrows = $SQL->degisen();

$SQL->sorgu("SELECT",__FILE__, __LINE__);
$key = "UniqueID"; // Eğer diziyi key e  göre sıralasın istersen
$DataSet = $SQL->matris($key);
?>
Not : eğer SQL->TestMode = true; yaparsan; komutları göze güzel gözükmesi
için parse ederken biraz kasıyor.

<?php
$SQL->dump();
class mysql_class {
    var $Host = "";
    var $Database = "";
    var $User = "";
    var $Password = "";
    var $log_dosyasi = "";
    var $Record = Array();
    var $Query_Sayisi = 0;
    var $Row;
    var $Link_ID = 0;
    var $Connected = false;
    var $Query_ID = 0;
    var $Version = 0;
    var $Prefix = "";
    var $Charset = "latin5";
    var $Collation = "latin5_turkish_ci";
    var $TestMode = false;
    var $TestDump = "";
    var $SyntaxFind = array('ALL', 'ASC', ' AS', 'ALTER', 'AND', 'ADD',
'AUTO_INCREMENT', 'BETWEEN', 'BINARY', 'BOTH', 'BY', 'BOOLEAN', 'CHANGE',
        'CHECK', 'COLUMNS', 'CONCAT','COLUMN', 'CROSS', 'CREATE',
'DATABASES', 'DATABASE', 'DATA', 'DELAYED', 'DESCRIBE', 'DESC', 'DISTINCT',
'DELETE',
        'DROP', 'DEFAULT', 'ENCLOSED', 'ESCAPED', 'EXISTS', 'EXPLAIN',
'FIELDS', 'FIELD', 'FLUSH', 'FOR', 'FOREIGN', 'FROM', 'GROUP',
        'GRANT', 'HAVING', 'IGNORE', 'INDEX', 'INFILE', 'INSERT', 'INNER',
'INTO', 'IDENTIFIED', ' IS', ' IF', 'JOIN', 'IN', 'KEYS', 'KILL', 'KEY',
        'LEADING', 'LIKE', 'LIMIT', 'LINES', 'LOAD', 'LOCAL', 'LEFT','LOCK',
'LOW_PRIORITY', 'LEFT', ' LANGUAGE', 'MODIFY', 'NATURAL', 'NOT', 'NULL',
        'NEXTVAL', 'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'ORDER', 'OUTFILE',
'OR', 'OUTER', ' ON', 'PROCEEDURE', 'PROCEDURAL', 'PRIMARY', 'READ',
        'REFERENCES', 'REGEXP', 'RENAME', 'REPLACE', 'RETURN', 'REVOKE',
'RLIKE', 'RIGHT', ' SHOW', 'SONAME', ' STATUS', 'STRAIGHT_JOIN', 'SELECT',
        'SETVAL', 'SET', 'TABLES', 'TEMINATED', ' TO', 'TRAILING',
'TRUNCATE', 'TABLE', 'TEMPORARY', 'TRIGGER', 'TRUSTED', 'UNIQUE', 'UNLOCK',
        'USE', 'USING', 'UPDATE', 'UNSIGNED', 'VALUES', 'VARIABLES', 'VIEW',
'WITH', 'WRITE', 'WHERE', 'ZEROFILL', 'XOR',"CONCAT\(", "\(", "\)","=");
    var $SyntaxRepl = "<span style='color: #993333; font-weight:
bold;'>\\1</span> ";
    var $SqlQueries = array();
    var $TotalQueryTime = 0;
    function mysql_class($db_vars = array())
    {
        global $_CFG;
        $this->Host = $db_vars["Server"];
        $this->Database = $db_vars["Database"];
        $this->User = $db_vars["User"];
        $this->Password = $db_vars["Password"];
        $this->log_dosyasi = ($db_vars["ErrFile"] ? $db_vars["ErrFile"] :
$_CFG["dir"]["log"] . "mysql.err.log");
        $this->Prefix = $db_vars["Prefix"];
        if (isset($db_vars["Charset"])) $this->Charset =
$db_vars["Charset"];
        if (isset($db_vars["Collation"])) $this->Collation =
$db_vars["Collation"];

    }

    function busy(){
     header ("Location: busy.html");
  die();
    }

    function connect()
    {
        if (!$this->Connected) {
            $this->Link_ID = @mysql_connect($this->Host, $this->User,
$this->Password) or $this->busy();
            //$this->Link_ID = mysql_connect($this->Host, $this->User,
$this->Password) or die(mysql_error());
            if (!is_resource($this->Link_ID)) {
                $hata_arr['Sunucu'] = "MySQL Sunucusuna Bağlanılamadı.";
            }
            if (!mysql_select_db($this->Database, $this->Link_ID)) {
                $hata_arr['Veritabanı'] = $this->Database . " veritabanına
bağlantı sağlanamadı.";
                $this->busy();
            }
            if (count($hata_arr) > 0) {
                $this->hata($hata_arr);
            } else {
                $this->Connected = true;
                $Version = explode('.',
mysql_get_server_info($this->Link_ID));
                $this->Version = (int) sprintf('%d%02d%02d', $Version[0],
$Version[1], intval($Version[2]));
                if ($this->Version >= 40100) {
                    $this->sorgu( "SET CHARACTER SET " . $this->Charset .
";", __FILE__, __LINE__ );
     $this->sorgu( "SET collation_connection = '" . $this->Collation . "';",
__FILE__, __LINE__ );
                }
            }
        }
        return $this->Link_ID;
    }


    function sorgu($Query_String, $File = false, $Line = false)
    {
     $QueryTimer = setTimer();

        $this->connect();
        if ($this->Query_ID) {
            $this->Query_ID = 0;
        }
        $this->Query_Sayisi++;
        $this->Query_ID = @mysql_query($Query_String, $this->Link_ID);
        //$this->Query_ID = mysql_query($Query_String, $this->Link_ID) or
die(mysql_error()."<br />Q:".$Query_String);
 $this->Row = 0;
        if (!$this->Query_ID) {
            $sql_hata = mysql_error();
            $sql_hata_num = mysql_errno();
            $hata_arr = array("Sunucu Durumu" =>
(is_resource($this->Link_ID) ? "Bağlantı Sorunsuz" : "Bağlantı Yok!") ,
                "Sunucu Son Hatası" => ($sql_hata_num ? $sql_hata . " [" .
$sql_hata_num . "]" : "Hata yanıtı alınamadı"),
                "Sorgu" => $Query_String,
                "Hata Dosyası" => ($File ? $File : "Dosya Belirtilmedi!") ,
                "Hata Satırı" => ($Line ? $Line : "Satır Belirtilmedi!")
                );
            unset($sql_hata, $sql_hata_num);
            $this->hata($hata_arr);
        }
        $Timer = setTimer($QueryTimer);
        $this->SqlQueries[] = array('Query' => $Query_String, 'Time' =>
$Timer);
        $this->TotalQueryTime += $Timer;
  if ($this->TestMode) {
   if (substr($Query_String,-1) != ';') $Query_String .= ';';
            foreach($this->SyntaxFind as $KeyWord) {
                $Query_String = preg_replace("/(" . $KeyWord . "+(
|[\r\n]+|;))/i", $this->SyntaxRepl, $Query_String);
            }
            $Query_String = str_replace("as", "AS", $Query_String);
            $this->TestDump .= "<tr><td class=\"sqldump_yazi\"
valign=\"top\"><b>Sorgu</b></td><td class=\"sqldump_yazi\">" .
nl2br($Query_String) . "</td></tr>";
   $this->TestDump .= $File ? "<tr><td class=\"sqldump_yazi\"
valign=\"top\"><b>Dosya</b></td><td
class=\"sqldump_yazi\">".$File."</td></tr>" : "";
   $this->TestDump .= $Line ? "<tr><td class=\"sqldump_yazi\"
valign=\"top\"><b>Satır</b></td><td
class=\"sqldump_yazi\">".$Line."</td></tr>" : "";
            if (count($hata_arr)) {
                $this->TestDump .= "<tr valign=\"top\"><td
class=\"sqldump_yazi\"><b>Hata</b></td><td class=\"sqldump_yazi\"><table
border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"#FFE6E4\">";
                foreach($hata_arr as $key => $value) {
                    $this->TestDump .= "<tr><td class=\"sqldump_yazi\"
width=\"110\" valign=\"top\"><b>" . $key . "</b></td><td
class=\"sqldump_yazi\">" . $value . "</td></tr>";
                }
                $this->TestDump .= "</table></td></tr>";
            } else {
                $this->TestDump .= "<tr><td
class=\"sqldump_yazi\"><b>Hata</b></td><td class=\"sqldump_yazi\">Sorgu
Başarılı</td></tr>";
                if (substr(trim($Query_String), 0, 3) != "SET") {
                    if (eregi("SELECT", strtoupper($Query_String))) {
                        $this->TestDump .= "<tr><td class=\"sqldump_yazi\"
width=\"70\"><b>Bulunan</b></td><td class=\"sqldump_yazi\">" .
($this->adet() ? $this->adet() : "0") . "</td></tr>";
                    } else {
                        $this->TestDump .= "<tr><td
class=\"sqldump_yazi\"><b>Etkilenen</b></td><td class=\"sqldump_yazi\">" .
($this->degisen() ? $this->degisen() : "0") . "</td></tr>";
                    }
                }
            }

            $this->TestDump .= "<tr><td style=\"height:4px;\"
bgcolor=\"#FFFFCC\" colspan=\"2\"></td></tr>\r\n";
        }
        return $this->Query_ID;
    }

    function dump($TestMode = true)
    {
        echo "<style>.sqldump_baslik
{Font-Family:Verdana,Tahoma;Font-Size:11px;} .sqldump_yazi
{Font-Family:Verdana,Tahoma;Font-Size:10px;}</style>";
        echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\"
width=\"100%\" style=\"border-collapse: collapse;\">
    <tr><td align=\"center\" bgcolor=\"#FFFFCC\" colspan=\"2\"
class=\"sqldump_baslik\"><b>SQL Test Mode</b></td></tr>";
        echo $this->TestDump;
        echo "</table>";
        $this->TestMode = $TestMode;
    }

    function degisen()
    {
        return @mysql_affected_rows($this->Link_ID);
    }

    function eklenenid()
    {
        return @mysql_insert_id($this->Link_ID);
    }

    function adet()
    {
        if (@mysql_num_rows($this->Query_ID)) {
            return @mysql_num_rows($this->Query_ID);
        } else {
            return false;
        }
    }

    function satir()
    {
        $this->Record = @mysql_fetch_assoc($this->Query_ID);
        $this->Row += 1;
        if (!is_array($this->Record)) {
            @mysql_free_result($this->Query_ID);
            $this->Query_ID = 0;
        }
        return $this->Record;
    }

    function matris($Index_Key = false)
    {
        unset($this->Matris);
        $this->Matris = array();
        if ($this->adet()) {
            if ($Index_Key) {
                while ($row = $this->satir()) {
                    $this->Matris[$row[$Index_Key]] = $row;
                }
            } else {
                while ($row = $this->satir()) {
                    $this->Matris[] = $row;
                }
            }
        }
        return $this->Matris;
    }

    function hata($hata_arr)
    {
        if (!file_exists($this->log_dosyasi)) {
            $fp = fopen($this->log_dosyasi, "w");
            $fb = "";
            $fb .= "<? die(\"Geçersiz Dosya İsmi\"); ?>\r\n";
            $fb .=
"***********************************************************************\r\n";
            $fb .= "******************\r\n";
            $fb .= "****************** MySQL Veritabanı Hata Kayıt Dosyası
***************\r\n";
            $fb .= "******************\r\n";
            $fb .=
"***********************************************************************\r\n";
            @fputs($fp, $fb);
        } else {
            $fp = fopen($this->log_dosyasi, "a+");
        }
        @fputs($fp, date("d.m.Y H:i:s") . "\r\n");
        @fputs($fp,
"-------------------------------------------------------------------" .
"\r\n");
        foreach($hata_arr as $k => $v) {
            @fputs($fp, $k . " : " . $v . "\r\n");
        }
        @fputs($fp,
"-------------------------------------------------------------------" .
"\r\n\r\n");
        @fclose($fp);
        return true;
    }
}

?>
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap