Bölüm 10: PHP ile Veritabanı Uygulamaları -231-
Öğr.Gör. Serkan DİŞLİTAŞ 10.1. PHP PHP, platformdan bağımsız sunucu taraflı çalışan betik bir web programlama dilidir. PHP programlama dili ile MySQL, MSSQL, Oracle, PostgreSQL, dbase vb. veritabanlarına ve ayrıca IMAP, SNMP, NNTP, POP3, HTTP servislerine güvenli bir şekilde bağlantı kurulabilmektedir. Linux Apache Server MySQL üçlüsünden oluşan platform en yaygın ve önerilen bir platformdur. Önemli Özellikleri : PHP sunucu taraflı yorumlanır ve elde edilen HTML kodlar istemciye yansıtılır. HTML içine gömülebilmektedir. İstemci ekranında PHP kaynak kodları görüntülenmez. Kitapta yer alan PHP uygulamalarına yönelik bazı temel kaideler tabloda verilmiştir. Kodlama Açıklama Küçük-Büyük Harf Duyarlı Küçük-Büyük harf duyarlıdır. Örneğin $x ile $X farklı iki değişken olarak kabul edilir. @ Komut başlarında kullanılan @ karakteri, komutun hata üretmesi durumunda hata mesajının tarayıcı ekrana verilmesini engellemektedir. $ değişken başarında kullanılmaktadır. <? PHP kodu başlangıcı ve sonu?> // Açıklama satırı /* Açıklama bloğu */ { Blok başlangıcı } Blok sonu. Birleştirme operatörüdür. ++x x = x + 1 x++ x = x + 1 y = ++x Önce x = x + 1 Sonra y = x y = x ++ Önce y = x Sonra x = x + 1 x.= y x = x + y ; PHP komut satırı sonlarında kullanılmalıdır. = Atama operatörüdür. Örnek : $x = 10 == Eşit mi? === Denk mi? Bu kullanımda değişken tipi de kontrol edilir. % Modüler bölme 7 % 2 >>> 1 \n HTML kodlarında alt satıra geçiş sağlanır <br> Tarayıcı ekranda alt satıra geçiş sağlanır -232-
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.2. PHP ile MySQL Uygulamaları 10.2.1. MySQL Server Bağlantısı Program Açıklama Satır No 1 ve 14 PHP kodu başlangıç ve bitişini belirler. 2 // Açıklama satırı yazmak için kullanılmıştır. Veritabanı bağlantı özellikleri belirlenir. Burada : MySQL Server : localhost Kullanıcı Adı : root 4 Şifre : 123456 6-13 $baglanti_durumu bir değişkendir. Bağlantı kurulup kurulamaması durumuna göre geriye True/False değeri döndürülmekte ve değişkene atanmaktadır. Burada if karar kontrol komutu yardımıyla ilgili mesajın echo ile tarayıcı ekrana verilmesi sağlanmıştır. Program çalıştırıldığında bağlantı kurulursa, tarayıcı ekranı aşağıdaki gibi olur. -233-
10.2.2. MySQL Server Bağlantısı ( die Kullanımı) Öğr.Gör. Serkan DİŞLİTAŞ Burada özel bir programlama tekniği kullanılmıştır. Derleyiciler açısından and ve or mantıksal operatörlerinin işletilmesine yönelik olarak özel bir durum mevcuttur : and operatörünün solundaki mantıksal durum True değer üretmedikçe sağındaki mantıksal durumu dikkate almaz. or operatörünün solundaki mantıksal durum False değer üretmedikçe sağındaki mantıksal durumu dikkate almaz. Burada MySQL bağlantısı kurulamazsa, or sonrasındaki die komutu işletilmektedir. -234-
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.2.3. MySQL Server Bağlantısının İptali -235-
Öğr.Gör. Serkan DİŞLİTAŞ 10.2.4. MySQL Bağlantı Hatası Tespiti -236-
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.2.5. MySQL Server Kalıcı Bağlantı Kurma -237-
10.2.6. Veritabanı Oluşturma (MySQL Server) Öğr.Gör. Serkan DİŞLİTAŞ Veritabanları hem SQL kodlarının (Create Database) hem de mysql_create_db fonksiyonunun işletilmesi ile oluşturulabilmektedir. Yukarıda her iki yöntemle veritabanı oluşturma işlemi örneklenmiştir. -238-
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.2.7. Veritabanlarının Listelenmesi -239-
Öğr.Gör. Serkan DİŞLİTAŞ 10.2.8. Veritabanı Silme -240-
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.2.9. Tablo Oluşturma -241-
10.2.10. Veritabanındaki Tabloların Listelenmesi Öğr.Gör. Serkan DİŞLİTAŞ -242-
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.2.11. Tablo Silme -243-
Öğr.Gör. Serkan DİŞLİTAŞ 10.2.12. Tabloya Kayıt Ekleme -244-
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.2.13. Kayıt Listeleme Uygulama 1 : (Kayıt Listeleme Yöntemi 1) -245-
Öğr.Gör. Serkan DİŞLİTAŞ Uygulama 2 : (Kayıt Listeleme Yöntemi 2) -246-
Bölüm 10: PHP ile Veritabanı Uygulamaları Uygulama 3 : (Renkli Satırlar ile Kayıt Listeleme) -247-
Öğr.Gör. Serkan DİŞLİTAŞ 10.3. PHP ile MySQL Login Uygulaması 10.3.1. Login Tablosu Oluşturma (Login Uygulaması ) -248-
Bölüm 10: PHP ile Veritabanı Uygulamaları -249-
10.3.2. Yeni Üyelik İşlemi (Login Uygulaması ) Öğr.Gör. Serkan DİŞLİTAŞ -250-
Bölüm 10: PHP ile Veritabanı Uygulamaları -251-
-252- Öğr.Gör. Serkan DİŞLİTAŞ
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.3.3. Üye Giriş Kontrolü (Login Uygulaması ) -253-
-254- Öğr.Gör. Serkan DİŞLİTAŞ
Bölüm 10: PHP ile Veritabanı Uygulamaları -255-
Öğr.Gör. Serkan DİŞLİTAŞ 10.3.4. Üyelik İptali (Login Uygulaması ) -256-
Bölüm 10: PHP ile Veritabanı Uygulamaları -257-
Öğr.Gör. Serkan DİŞLİTAŞ 10.3.5. Üye Listesi (Login Uygulaması ) -258-
Bölüm 10: PHP ile Veritabanı Uygulamaları 10.4. PHP ile MSSQL Uygulamaları Uygulama 1 : MSSQL veritabanına bağlantı kurularak 044527014 numaralı öğrencinin 2005-2006 GÜZ döneminde aldığı dersler ve notları elde edilmektedir. -259-
Öğr.Gör. Serkan DİŞLİTAŞ Program Açıklama Satır No 1 ve 36 PHP kodu başlangıç ve bitişini belirler. 2 // açıklama satırı yazmak için kullanılmıştır. 4 ADO Bağlantısı oluşturulur. Veritabanı bağlantı özellikleri belirlenir. Burada : DRIVER : Veritabanı Sürücüsü 5 SERVER : MSSQL Server adı UID : (User ID) Veritabanına bağlantı için gerekli Kullanıcı Adı PWD : (Password) Veritabanı bağlantı için gerekli Şifre DATABASE : Bağlantı kurulacak veritabanı adı 6 5 ile belirtilen özelliklerdeki bağlantı kurulur. $numara değişkenine 044527014 değeri atanır. 8 $ işareti değişken başlarında mutlaka kullanılır. = karakteri atama operatörüdür. Değişkenlere değer atamada tipleri belirlenmiş olur. 9 $donem değişkenine 2005-2006 GÜZ değeri aktarılır. Sorgu belirlenir. 11-14. karakteri String birleştirmede kullanılır. $query.= From OgrDers27 ve $query = $query. From OgrDers27 aynıdır. 16 Açıklama satırı durumundadır. İstenirse sorgu içeriği doğrudan parametrik olarak kullanılabilir. 18 Execute ile parametrik olarak verilen sorgu cümlesi işletilir. Sorgu sonrası elde edilen ResulSet değeri $rs değişkenine aktarılır. While çevrimi kullanılarak $rs sonuna ulaşılıncaya kadar teker teker resultset 23-35 kayıtları ve bunlara ait veri alanları elde edilir. echo ile ekrana basım yapılır. 34 $rs->movenext() ile ResultSet için bir sonraki kayıta geçiş sağlanır. -260-
Bölüm 10: PHP ile Veritabanı Uygulamaları Uygulama 2 : OgrDers tablosundaki kayıt sayısının (öğrenci sayısının) elde edilmesi. -261-
Öğr.Gör. Serkan DİŞLİTAŞ Uygulama 3 : Öğrencilerin 2006-2007 GÜZ döneminde aldıkları ders sayılarının elde edilmesi. -262-