@Skorp hocamın ŞU açtığım başlıkta verdiği cevaplar ve PG' den @bocek hocamın yardımlarıyla kendi projelerimde kullanmak üzere bugün tamamladığım MySQL veritabanı sınıfımı paylaşmak istedim. Şu an bazı eksiklikleri var (hata yakalama gibi...), ama kullanılabilir diye düşünüyorum.
Şimdiden bazı arkadaşların "ne gerek vardı canım ezSQL gibi bir sınıf varken?!" dediklerini duyar gibiyim. Haklısınız tabi ama benim de kendime göre sebeplerim vardı :- ezSQL' in kullanmadığım çok işlevi var. Benim için şu anda temel işlevler yeterli (güncelleme, silme, ekleme, listeleme, v.s...)
- ezSQL' in kod yapısı bana karmaşık geldi. Projeye göre bir değişiklik yapacağımda kodlara aşina olmak ve hükmedebilmek isterim.
- PHP' de NYP' yı daha iyi kavrayabilmek.
- ve bunun gibi birkaç ufak sebep daha...
Uzun lafın kısası: kullanmak isteyen arkadaşlar için sınıf dosyası (kgMySQL.class.php) kodları ve kullanım şeklini açıklamalar halinde içeren test dosyası (test.php) kodları aşağıdadır, hayrını görün efenim 
kgMySQL.class.php (v1.0)
PHP Kodu:
<?PHP
########################################################################################################################
#
# KG MySQL v1.0
# Class Name : KG MySQL Class
# Version : 1.0
# Requirement : PHP4 >
# Build Date : January 17, 2007 - Thursday
# Developer : Muharrem ERİN (TÜRKİYE) - info@muharremerin.com - muharremerin.com - mhrrmrn.com - kisiselgunce.com
# Licence : GNU General Public License (c) 2008
#
########################################################################################################################
class kgMySQL {
public $error = array();
public $query_number = NULL;
var $insert_id = NULL;
function _conn($host, $user, $pass) {
$conn = @mysql_pconnect($host, $user, $pass);
if (!$conn) {
$this -> error[] = 'Veritabanına bağlanılamadı. - <span>'. mysql_error().'</span>';
}
}
function _select($db) {
$select = @mysql_select_db($db);
if (!$select) {
$this -> error[] = 'Veritabanı bulunamadı. - <span>'. mysql_error().'</span>';
}
}
function _errors() {
if ($this -> error) {
echo '<ul><p>Bazı hata(lar) oluştu :</p>';
for ($i = 0; $i < count($this -> error); $i++) {
echo '<li>'.$this -> error[$i].'</li>';
}
echo '</ul>';
}
}
function db_set($host, $db, $user, $pass) {
$this -> _conn($host, $user, $pass);
$this -> _select($db);
$this -> _errors();
}
function number($sql) {
if (!$this -> error) {
$number = mysql_result(mysql_query($sql), 0);
$this -> query_number++;
return $number;
}
}
function query($sql) {
if (!$this -> error) {
$query = mysql_query($sql);
$this -> query_number++;
if ($query) {
if (mysql_insert_id()) {
$this -> insert_id = mysql_insert_id();
}
}
}
}
function row($sql) {
$row = mysql_fetch_object(mysql_query($sql));
$this -> query_number++;
return $row;
}
function rows($sql) {
if (!$this -> error) {
$rows = mysql_query($sql);
$this -> query_number++;
if ($rows) {
while($read = mysql_fetch_object($rows)) {
$val[] = $read;
}
return $val;
}
}
}
}
?>
test.php
PHP Kodu:
<?PHP
header('Content-Type: text/html; charset=utf-8'); // sayfa header bilgisi
require_once('kgMySQL.class.php'); // sınıfımızı sayfamıza çağırıyoruz
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<title>kgSQL test</title>
<style type="text/css">
body {
margin:20px;
font:0.75em/1.8em tahoma, helvetica, "sans serif";
}
</style>
</head>
<body>
<?PHP
$db =& new kgMySQL(); // veritabanı nesnemiz
$db -> db_set('localhost', 'kgsql', 'root', ''); // mysql bağlantısı kuruyor ve vt' nı seçiyoruz
$db -> query("SET NAMES 'utf8'"); // karakter setimizi bu şekilde tanımlayabiliyoruz
/*
Örnek SQL
-----------------------------------
CREATE TABLE `categories` (
`id` int(10) unsigned NOT NULL auto_increment,
`parent` int(11) NOT NULL,
`line` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
INSERT INTO `categories` (`id`, `parent`, `line`, `name`) VALUES
(1, 0, 1, 'Modern Avizeler'),
(2, 1, 2, 'Klasik Avizeler'),
(3, 2, 3, 'Modern Kristallitler'),
(4, 0, 6, 'Masa Lambaları'),
(5, 0, 7, 'Aplikler'),
(6, 4, 8, 'Promosyon'),
*/
################################################################################################
// yeni bir veri eklemek için
#$insert = $db -> query("INSERT INTO categories (id, line, name) VALUES ('', '', 'Denemeeeee')");
// eklenen verinin id'sini almak için
#echo $db -> insert_id;
################################################################################################
// veri güncellemek için
#$update = $db -> query("UPDATE categories SET name = 'yeni isimaaaaaşşçççöööğğğİİİüüüııı' WHERE id = '5asda'");
################################################################################################
// veri silmek için
#$delete = $db -> query("DELETE FROM categories WHERE id = '4'");
################################################################################################
// tablodaki kayıtlı veri sayısını almak için
#echo $db -> number("SELECT count(id) FROM categories");
################################################################################################
// sadece bir veriyi almak için
#$row = $db -> row("SELECT id, name FROM categories WHERE id = '1'");
#echo $row -> id.' - '.$row -> name;
################################################################################################
// birden fazla veri almak için
/*
$rows = $db -> rows("SELECT id, name FROM categories");
if ($rows) {
foreach($rows as $row) {
echo $row -> id.' - '.$row -> name.'<br />';
}
}else{
echo 'Kayıtlı veri bulunamadı!';
}
*/
################################################################################################
// recursive yapıda bir fonksiyon ile kullanım örneği
/*
function recursive($parent) {
global $db;
$rows = $db -> rows("SELECT id, parent, name FROM categories WHERE parent = '$parent'");
if ($rows) {
echo '<ul>';
foreach($rows as $row) {
echo '<li>';
echo $row -> id.' - '.$row -> name;
recursive($row -> id);
echo '</li>';
}
echo '</ul>';
}
}
recursive(0);
*/
################################################################################################
// sayfa içerisinde yapılan toplam sorgu sayısını yazdırmak için
#echo '<p>'.$db -> query_number.'</p>';
################################################################################################
?>
</body>
</html>
Bookmarks