PHP
ile en etkin performans gösteren veri tabanının MYSQL olduğundan bahsetmiştik. Fakat
MYSQL ile bağlantının şart olduğu gibi bir yargı söz konusu değildir.
PHP
ile Access , PHP ile SQLite ya da PHP ile Postgresql gibi ikili bağlantı
seçeneklerinden de söz etmek mümkün. Aslında bu bölümde birçok veritabanı
örneği kullanabilirdim. Fakat Access, SQLite ve PostreSql tercihlerini yapmamda
en büyük etken bu yazılımların hem iyi bir performans göstermesi hem de
ücretsiz olmalarıdır. Ticari amaç gütmezler. Açık kaynak kod (GNU) gelişmesine
katkıda bulunan yazılımların yaygın hale gelmesini sağlamak biz programcıların
görevlerindendir.
Access
Dünyanın
en büyük yazılım firmalarından Microsoft’un geliştirdiği Microsoft Access
veritabanı, en çok bilinen ve kullanılan veritabanı programıdır. Kullanımı
oldukça geliştirilmiştir. Veritabanı ara yüzünü görmeye gerek kalmadan, kendi
içerisindeki sihirbazlar ile veritabanı oluşturulur ve sorgulama yapılabilir.
Microsoft
Access programı, herhangi bir Office versiyonu kurulumu sırasında
bilgisayarınıza kurulacaktır. Bundan dolayı temin etmesi oldukça kolay bir
veritabanı programıdır.
Access Arayüzü |
Access ile Tablo Oluşturmak
Veritabanında tablo oluşturmak için “Boş Veritabanı” seçeneğine girerek
ilgili seçeneği seçmek yeterli olacaktır. Daha sonraki aşamada “Veriler girerek tablo oluştur”
denildiğinde, SQL’e gerek kalmadan manuel olarak veri girmemiz sağlanır.
Access içinde oluşturulan rehber tablosu
Yukarıda görülen tablo, rehber tablosudur ve isimler içermektedir. Bu verileri
PHP programlama dilini kullanarak yazdırmak istenirse aşağıdaki gibi bir kod
oluşturmak gerekecektir.
Uygulama: PHP ile Acces bağlantısıyla veri çekmek
<?php
$conn
= new COM("ADODB.Connection") or die("ADODB
bağlayamıyoruz.");
$conn->Open("DRIVER={Microsoft
Access Driver (*.mdb)};DBQ=C:\Users\ABGSATMAN\Desktop\son.mdb");
$veriler
= $conn->Execute("SELECT * FROM rehber ORDER BY kimlik ASC");
echo
"<TABLE border='1'><TR><TD
colspan='6'>DATA</TD><TR>";
while
(!$veriler->EOF)
{
echo
"<tr>";
echo
"<td>" . $veriler->Fields[0]->value . "
</td>";
echo
"<td>" . $veriler->Fields[1]->value . "
</td>";
echo
"</tr>";
$veriler->MoveNext();
}
echo
"</TABLE>";
?>
Yukarıdaki
kodları access.php dosya adıyla kaydedip
çalıştırdığımızda, aşağıdaki gibi bir görüntü elde edilecektir.
Ekran Çıktısı |
Yukarıdaki
kodlamayı anlayabilmek için satırları teker teker incelemekte fayda var diye
düşünüyorum.
$conn
= new COM("ADODB.Connection") or die("ADODB bağlayamıyoruz.");
$conn->Open("DRIVER={Microsoft
Access Driver (*.mdb)};DBQ=C:\Users\ABGSATMAN\Desktop\son.mdb");
Yukarıdaki
satırlar, PHP ile ACCESS arasındaki bağlantıyı sağlamaya yöneliktir. Aslında bu
bağlantıyı sağlamak için;
odbc_connect(‘dsn adı’, ‘kullanıcı
adı’, ‘şifre’);
bu
yol izlenmelidir. Fakat buradaki sorun, kullanıcı adı ve şifre tanımlaması
olmaktadır. ODBC bağlantısı olması için sistemin bu alt yapıya sahip olması
gerekmektedir. Herhangi bir işletim sisteminde PHP kullanabilmek için gerekli
alt yapıyı oluşturacak sunucu kurulmalıdır. Bunu sağlayan sunucu APACHE’dir.
Fakat işletim sisteminin ne olduğuna bakılmaksızın, ODBC desteği olup
olmadığını anlamak için;
phpinfo.php
<?php
Phpinfo();
?>
phpinfo.php ile sunucunun ODBC desteği ve özellikleri |
ODBC
kullanıcı adı ve şifre bilgileri için ODBC yapılandırılması gerekmektedir.
$conn
= new COM("ADODB.Connection") or die("ADODB bağlayamıyoruz.");
$conn->Open("DRIVER={Microsoft
Access Driver (*.mdb)};DBQ=C:\Users\ABGSATMAN\Desktop\son.mdb");
Yapılandırılma
işlemi bu satırlar ile oluşturulup, veritabanı konumu ise belirlenmektedir.
ODBC Yapılandırılması |
Bu
karmaşık işlemleri kod ile yapmak daha kolay ve zahmetsizdir.
$veriler
= $conn->Execute("SELECT * FROM rehber ORDER BY kimlik ASC");
Bu
satırda, veriler Access veritabanından çekilmektedir. Görüldüğü gibi numara
sırasına göre ayarlanmıştır. ORDER BY kimlik ASC ifadesi bunu belirtmektedir. Execute
ifadesi ile de sql sorgulamasında getirilen dataları, bir dizi haline alır ve
döngüye sokmaya yardımcı olur.
echo
"<TABLE border='1'><TR><TD
colspan='6'>DATA</TD><TR>";
while
(!$veriler->EOF)
{
echo
"<tr>";
echo
"<td>" . $veriler->Fields[0]->value . "
</td>";
echo
"<td>" . $veriler->Fields[1]->value . "
</td>";
echo
"</tr>";
$veriler->MoveNext();
}
echo
"</TABLE>";
Bu
satırlarda ise SQL ile çekilen veriler, döngü içine alınarak tablolama ile
birlikte yazdırılır.
Bir sonraki yazıda görüşmek dileğiyle!
Ben Aşağıdaki hataları alıyorum.
YanıtlaSilSCREAM: Error suppression ignored for
Fatal error: in C:\wamp\www\ms\index.php on line 3
com_exception: in C:\wamp\www\ms\index.php on line 3
Call Stack
Bu hatarın sebebi sizce ne olabilir. Win8 işletim sistemi, wampserver kullanıyorum..