PHP de nesne yönelimli veritabanı bağlantısı (MySQL)
Rıdvan KARATAŞ Tarih: 2/07/2008 Yorum: 1 adet
Okunma : 447 Tutanlar: Bu yazıyı 1 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.
Makale
İlişkili makale bulunamadı.
Haber
İlişkili haber bulunamadı.
Ders
İlişkili ders bulunamadı.
MMIstanbul Adobe UG
ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, INdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfteEffects, Resmi Adobe Kullanıcı Grubu.
Etkinlikler
Konferans
2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08
2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08
2.Ulusal Yazılım Mimarisi Konferansı (UYMK’08), 11 – 12 Eylül 2008 tarihlerinde Ege Üniversitesi Bilgisayar Mühendisliği Bölümü ev sah...
Kategori:
Konferans
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 157 (3 kayıtlı, 154 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız




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