Bu Blogda Ara

7 Ocak 2008 Pazartesi

PHP ile mySQL bağlantı nesnesi

Özellikle PHP ye ve nesne yönelimli programlamaya yeni başlayan arkadaşlarımız için basit bir mySQL bağlantı sınıfı yazdım. Aşağıdaki kodları db.php vb. bir isimle kaydedin ve veritabanı bağlantısı kuracağınız sayfaya <?php include("db.php"); ?> şeklinde ekleyiniz.

<?php
class baglanti
{
var $kuladi;
var $parola;
var $host;
var $vrtbn;
var $durum=0;
var $con;

function ayarla($hosta,$kuladia,$parolaa,$vrtbna)
{
$this->kuladi=$kuladia;
$this->parola=$parolaa;
$this->host=$hosta;
$this->vrtbn=$vrtbna;
$this->durum=1;
}
function baglan()
{
if ($this->durum<1) die("SQL Bağlantı Ayarları Yapılandırılmamış.");
$this->con = mysql_connect($this->host,$this->kuladi,$this->parola);
if (!$this->con)
{
die('Bağlantı Hatası: ' . mysql_error());
}

mysql_select_db($this->vrtbn, $this->con);
$this->durum=2;
}
function kapat()
{
mysql_close($this->con);
}

function sorgu($sql_srg)
{
if ($this->durum<2) die("SQL Bağlantısı Sağlanamadı.");
return mysql_query($sql_srg);
}

}

?>


Evet şimdi gelelim bu sınıf ile nasıl nesne oluşturucağımıza. Sınıf dosyasını eklediğimiz sayfaya şöyle bir kod ekleyerek sınıfımızdan yeni bir nesne oluşturabiliriz.


<?php
include("db.php");

$yeni = new baglanti(); // nesnemizi oluşturur ve değişkene atar.
$yeni->ayarla("sunucu","kullanıcıadı","parola","veritabanıadı"); // ayar çeker.
$yeni->baglan(); // mySQL bağlantısını oluşturur.
$result = $yeni->sorgu("SELECT * FROM tabloadı;"); // sıradan bir SQL sorgusu
while($row = mysql_fetch_array($result))
{
echo $row['isim']; // 'isim' adlı sutundaki veriyi yazdırır.
}
$yeni->kapat(); // mySQL bağlantısını kapatır. ?>


Bu sınıfa sürüm 0.1 diyelim ve gelin birlikte geliştirelim. Daha geniş kapsamlı bir sınıf yazalım. Hem kendimizi geliştirelim hem de açık kaynak kodu destekleyelim. Örneğin daha iyi bir hata yakalama sistemi yapılabilir. Diğer veritabanı sistemleri için tasarlanabilir. Ekleme ve düzeltmelerinizi lütfen e-mail ile gönderiniz. İlginize ve yazımı okuduğunuz için teşekkür ederim.

Hiç yorum yok: