PHP de nesne yönelimli veritabanı bağlantısı (MySQL)
Rıdvan KARATAŞ Tarih: 2/07/2008 Yorum: 2 adet
Okunma : 3015 Tutanlar: Bu yazıyı 2 kişi tuttu.
PHP'de MySQL bağlantısını oluşturmak için birden çok yöntem vardır. Bir kaç satır kod öbeği, veritabanına bağlantı oluşturabilir hatta sorgulayabilir. Birazdan kodlarıyla örneklendireceğim veritabanı bağlantı nesnesi class teknikleriyle sorgulamaların tüm ihtiyaçlarını karşılayacaktır.
Mümkün olduğu kadar açıklamaları mevcut.
<?
class veritabani
{
var $host; /* MySQL Host'u */
var $kullanici; /* MySQL Kullanıcı adı */
var $sifre; /* MySQL Şifresi */
var $baglanti_no; /* MySQL bağlantı tanımlayıcı numarası */
var $veritabani; /* Kullanılacak veritabanı adı */
var $sorgu;
var $sorgu_no; /* Aynı anda birden fazla sorguyu ayırd edebilmek için gerekli. */
/* Kurucu Fonksiyon */
function veritabani()
{
/* Ön tanımlı ayarlar. Bunları kendi sisteminize göre değiştirebilirsiniz. */
$this->host = "localhost"; /* MySQL Host'u */
$this->kullanici = "root"; /* MySQL kullanıcı adı */
$this->sifre = "sifre"; /* MySQL şifresi */
$this->veritabani = "websitesi"; /* MySQL kullanılacak veritabanı */
/* Bunlara dokunmayın */
$this->baglanti_no = 0;
$this->sorgu_no = 0;
}
/* Host seçilmesi. */
function secHost($v_host)
{
$this->host = $v_host;
}
/* Kullanıcı seçilmesi. */
function secKullanici($k_adi,$k_sifre)
{
$this->kullanici = $k_adi;
$this->sifre = $k_sifre;
}
/* Veritabani seçilmesi */
function secVeritabani($veritabani_adi)
{
$this->veritabani = $veritabani_adi;
}
/* Veritabanına bağlanılması */
function baglan()
{
if ($this->veritabani == "")
$this->durdur("Lütfen önce bir veritabanı seçiniz.");
$this->baglanti_no = @mysql_connect( $this->host, $this->kullanici, $this->sifre );
if (!$this->baglanti_no)
$this->durdur("Veritabanı sunucusu ile bağlantı kurulamadı.");
if (!@mysql_select_db($this->veritabani, $this->baglanti_no))
$this->durdur("Veritabanı seçilemedi.");
}
/* Veritabanı bağlantısının kesilmesi. */
function kapat()
{
if ($this->baglanti_no)
mysql_close($this->baglanti_no);
}
/* Sorgulama yapılması */
function sorgula($sorgu_cumlesi)
{
/* Daha önceden bağlantı kurulmamış ise otomatik olarak bağlantıyı kuralım. */
if (! $this->baglanti_no )
$this->baglan();
$this->sorgu[++$this->sorgu_no] = @mysql_query($sorgu_cumlesi,$this->baglanti_no);
if (!$this->sorgu[$this->sorgu_no])
$this->durdur("<BR>$sorgu_cumlesi<BR>" . mysql_error());
return $this->sorgu_no;
}
/* Sorgu sonucundaki toplam sıra sayısının alınması */
function toplam_sira($sorgu_no = -1)
{
/* Sorgu numarası verilmemişse sonuncusunu kullan. */
if ($sorgu_no = -1) $sorgu_no = $this->sorgu_no;
if ( (!$this->baglanti_no ) || (!$this->sorgu[$sorgu_no]) )
$this->durdur("Lütfen önce bir sorgulama yapınız.");
return mysql_num_rows($this->sorgu[$sorgu_no]);
}
/* Sorgu sonuçlarının dizi değişken formunda sıralar halinde çekilmesi. */
function sonuc_cek($sorgu_no = -1)
{
/* Sorgu numarası verilmemişse sonuncusunu kullan. */
if ($sorgu_no = -1) $sorgu_no = $this->sorgu_no;
if ( (!$this->baglanti_no ) || (!$this->sorgu[$sorgu_no]) )
$this->durdur("Lütfen önce bir sorgulama yapınız.");
return mysql_fetch_array($this->sorgu[$sorgu_no]);
}
/* INSERT ile yapılan kayıt numarasının alınması. */
function kayit_no()
{
if ( (!$this->baglanti_no ) || (!$this->sorgu[$this->sorgu_no]) )
$this->durdur("Lütfen önce bir sorgulama yapınız.");
return mysql_insert_id();
}
/* Hata meydana gelirse işlemin durdurulması. */
function durdur($hata_mesaji)
{
echo "<B>Veritabanı sunucumuz ile olan bağlantımızda bir problem meydana geldi.</B><BR>".
"<B>Hata mesajı:</B> <i>$hata_mesaji</i><BR>";
exit();
}
}
?>
Bu scriptin kullanımını açıklamarıyla baktığınızda rahatça anlayacaksınız. Scriptin kullanımı ise oldukça basit.
<?php
require "veritabani.php"; // Scripti çağırdık
$vt = new veritabani; // Veritabanina kisaca vt dedik
$vt->SecVeritabani("DBNAME"); // Veritabanı seçilmesi
$vt->sorgula("SELECT * FROM tablo;"); // Örnek bi sorgu
$sira = $vt->sonuc_cek(); // Bir sira veri çekilmesi
/* Son olarak sonuc_cek olayını mysql_fetch_array ile yaptığımız için, sonuçlarımızı bir dizi değişkende toplayabiliriz. Yani bir tek sira veri: */
echo $sira["SUTUNADI"];
?>
İyi çalışmalar.
Sınıf ismi ile aynı olarak kullandığı zaman, fonksiyon adını o zaman aynı işlevi görür zaten.
Makale
İlişkili makale bulunamadı.
Haber
İlişkili haber bulunamadı.
Ders
İlişkili ders bulunamadı.
Etkinlikler
Toplantı
Özgür Yazılım ve Linux Günleri '10
Özgür Yazılım ve Linux Günleri '10
İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü ve Linux Kullanıcıları Derneği'nin 9 yıldır düzenlemekte oldukları etkinlikler bu yıl `Özgür Y...
Kategori:
Toplantı
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 61 (50 kayıtlı, 11 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Blog Bölümü Blogevi.com'a Taşınıyor
Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...
7.500'üncü üyemiz Cem Koç!
Neler Yapılabilir?
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)











PHP5'te burada kurucu fonksiyon diye adlandırılan sınıf metodunun özel adı __construct metodudur.