PHP’de MySQL kullanımı ve temel işlemler

Giriş

MySQL, sql tabanlı bir dil olduğundan yönetimi tamamen kendine özgü cümlecikler ile olur. Bu cümlecikler o kadar esnektir ki aynen konuşma dilinde emirler vermek gibidir. Sadece bazı kurallara sahiptir. Bu dökümanda mysql’de bu yapılabilecek ana işlemler hakkındaki sql cümleleri oluşturmayı, php ile mysql’i nasıl kullanacağımızı, bağlantı sağlayacağımızı ve temel işlemler için gerekli sql cümle yapılarını göreceğiz.

MySQL sunucusu ile bağlantı sağlamak.

Her protokolde olduğu gibi mysql’de de öncelikle bir bağlantı sağlayıp bu iletişim protokolü üzerinden işlemler yapacağız. MySQL’i komut satırından kullananlar bilir ki, mysql client’da sifremizi girdikten sonra ilk iş olarak bir tablo seçer ve sonrasında da yazdığımız güçlü sql sorgulara bakarız. Temel olarak bağlanıp bir veritabanı seçmemiz gerekiyor sorgularımızı işletmek için. PHP’yi mysql destekli derlemişseniz mysql extension’ı yüklenmiş demektir. Eğer yüklü ise mysql fonksiyonlarını işletebiliriz. MySQL fonksiyonları hakkında daha ayrıntılı bilgiyi php dökümantasyonundan alabilirsiniz.

MySQL’e bağlanabilmek için 3 kritere sahip olmamız gerekir. Birincisi bağlanacağımız host’dur. Üzerinde çalıştığımız bilgisayar olduğundna dolayı genellikle localhosttur. İkinci parametre kullanıcı, son parametre de bu kullanıcının şifresidir. İster php’den ister başka bir client’dan bağlanmaya çalışın; ancak bu bilgiler doğrultusunda bir mysql bağlantısı edinebilirsiniz. PHP’de bağlantı işlemini mysql_connect() fonksiyonu yapıyor. Bu fonksyiona sırasıyla host, k.adi, şifre parametrelerini belirtmemiz gerekiyor. Örnek bir bağlantı sayfası :

Görüldüğü gibi önce bağnatı ayarlarımızı yaptık, ardından bu değişkenleri kullanarak $baglanti adlı değişkene bir mysql bağlantısı atadık. or die kalıbı her komutta kullanabileceğimiz bir kalıptır. or die’dan önceki fonksiyonda işletim hatası olursa die()’da belirttiğimiz ifade ekrana basılır ve script çalışması durdurulur. mysql_error() fonksiyonu ise bir önceki mysql işleminde oluşan hatayı verir.
Şimdi bu bağlantıyı kullanarak bir veritabanı seçeceğiz. Çünkü sorguları çalıştırabilmek için öncelikle bir bağlantı sağlamış ve bir veritabanı üzerinde bulunuyor olmamız gerek.
Veritabanı seçimini de mysql_select_db() fonksiyonu ile yapacağız.

Böylece “veritabanim” adlı veritabanını seçtik. Artık sorgularımızı bu veritabanı üzerinde işletebiliriz.
Sorguları işletmek için ise mysql_query() foksiyonunu kullanacağız. Bu fonksiyon tek parametre ile çalışıyor. Daha önce yapılmış bağlantıyı ve seçilmiş veritabanını kullanıyor. Bu tek parametre de işleteceğimiz sql sorgusunu içeren stringdir.
Şimdi temel mysql işlemlerinde kullandığımız sql sorgularını görelim..

Temel mysql işlemleri nelerdir?

MySQL’de temel (ve genel) olarak yaptığımız işlemler bir tabloya veri eklemek, bu verileri çekmek, güncellemek ve silmektir. Bu işlemler için ayrı ayrı sql yapıları kullanacağız. Bazı işler daha sistem kurulurken kullanılır. Mesela bir veritabanı yaratmak, ya da yeni tablo oluşturmak.. Bu işlemleri sistemlerde her zaman yapılan işler arasına alamayız.. Onun için bu işlemleri bilgisayarınızda sistemi geliştirirken yaparız. Bunları phpMyAdmin programı (http://www.phpmyadmin.net) ile yapmanızı öneririm. Basit bir arabirimi ve Türkçe desteği var. phpMyAdmin ile başlangıç işlerini hatta rutin işleri yapacak olan sorguları da yazarken/geliştirirken bile kullanabilirsiniz.
Aşağıda bazı anlatımlar göreceksiniz, bu anlatımları tablo adlı bir tablo üzerinde yapacağım. Basitçe tabloda; kullanici, kayit_tarihi, eposta ve ziyaret_sayisi alanları var olsun. Birlikte çalışmak için şu sql’i çalıştırıp siz de deneme tablosu oluşturabilirsiniz :

Şimdi rutin işleri yapan sorgularımızı geliştirip, nasıl işleneceğini görelim.

Veri eklemek

Veri eklemek için kullanacağımız sql cümlesi yapısı şöyledir :

Yapı olarak, önce INSERT INTO ‘tablo adı’ ile başlar burada hangi tabloya veri ekleme işlemi yapılacağı belirtilir. Bu kısımdan sonra parantez içerisinde hangi sıra ile veri alanları için verilerin belirtilmesi gerekiyorsa o sırada alanlar yazılması gerekiyor. Boş bırakılması durumunda geçerli sırada veri girilecektir. Bu kısımdan sonra VALUE kalıbı ve tekrar parantez içerisinde az önce belirtilmiş sırada gerekli veri türlerine göre verilerin belirtilmesi gerekir.
Bizim sorgumuzda veriler, meta’ları değerlere eşleyerek göstemek gerekirse;

şeklinde ekleniyor.

Sorguda görüldüğü gibi o andaki zamanı belirtmek için NOW() şeklindeki mysql fonksiyonunu kullandım. MySQL o kadar esnek bir sorgulama dilidir ki, üzerinde çok fazla kalıp, çok fazla tenkin ve çok fazla fonksiyon vardır. Bu fonksiyonlar hakkındaki bilgiyi mysql’in kendi dökümantasyonunda veya mysqlfreaks’da bulabilirsiniz.

Veri silmek

SQL sorguları genelde bazı kalıplardan oluşur. Belirli bir sorguyu filtrelemek için WHERE kalıbını kullanırız. Aynı if gibidir. Belirli bir sorgudan etkilenecek olan kayıtlardan bazılarını seçeriz. Mesela silmek için kullandığımız sorguda ilk başta tüm tablo etkilenir; ama biz belirli kayıtları/kayıdı silebilmek için o kayıt hakkında bazı referanslar verip tüm tabloyu o veri çıkana kadar filtrelemiş oluruz. AND kalıbı ekleyerek birden fazla koşulda filtreleme yapılabilir. Tablomuzda birden fazla aynı kullanıcı adına sahip veri olmayacağı için kullanıcı adlı alan bizim için iyi bir referans olabilir.
Silmek için DELETE FROM ‘tablo adı’ kalıbını kulalnırız. Bu kullanımda tüm tablo etkilenir ve tablo boşaltılmış olur. WHERE kalıbını sorgumuza ekleyerek bir veya daha fazla belirli kayıdı sileceğiz. Örnek olarak az önce eklediğimiz kayıdı silelim..

Bu sorgu ile tek satır (fatih kullanıcısına ait) silinmiş olacaktır.

Veri güncellemek

Veri güncellemek de silmek gibidir. Yani süzgeçlenerek kayıtlar ifade edilir. Süzgeçlenmediği takdirde tüm tablo etkilenecektir. SQL yapısı UPDATE ‘tablo adı’ SET şeklindedir. Az önceki verinin silinmemiş olduğunu varsayarak güncelleyelim.

Bu sorguda fatih kullanıcısının ziyaret_sayisi değerini 1 artırmış oluyoruz. MySQL’de alan adlarını böyle kullanabiliriz, bunun için önce değeri tablodan çekip sonra php ile artırıp buraya girmeye gerek yoktur. MySQL’de bu tarz operatörlerde mevcuttur. Ayrıca güncelleyeceğimiz alan tek olmayabilir, böyle durumlarda aralarına virgül koyarak belirtebiliriz.

Veri çekmek ve veri listelemek oldukça ayrıntılı ve uzun olduğu için bu yapıyı ayrı dökümanda ele alacağım!

QBasic Kullanımı

QBasic kullanım klavuzu

QBasic adı üzerinde çok basit bir yapıya sahiptir ki programlama dilinden tutun programın kullanışına kadar çok kolaydır. Programı kullanırken kullanacağınız ana işlemlerin adım adım yapılışı aşağıda anlatılmaktadır. Programda kod yazarken menüye geçiş için ALT tuşuna bir kez basmanız yeterlidir. ALt tuşuna batığınızda menüdeki bazı kelimelerin bazı harfleri beyaz renge dönecektir. Bu beyaz renkli olan harfler, o menünün alt menüsüne erişimdeki klavye kısayoludur.

Yeni Bir Program Oluşturmak

Programın kod bölümünde iken, ALT tuşuna bir kez basarak menüyü aktifleştirin. Ardından sağ sol ok tuşları ile menü başlıkları arasında gezinebilirsiniz. Zaten menü ilk aktifleştiğinde File munüsü açılacaktır;

“File » New Program” yolunu izleyerek yeni bir program yaratabilirsiniz.
Eğer daha önce ekranda kaydedilmemiş bir program var ise yeni program yaratılmadan önce size bir soru gelecektir. Bu soruya evet diyerek programı kaydedebilir, hayır diyerek eski programı silerek yeni program oluşturabilirsiniz.

Programı kaydetmek

Yazdığınız bir programı kaydetmek için menüyü aktifleştirdikten sonra “File » Save” yolunu izleyerek kaydetme ekranını açın.

kaydetme ekranında;

File Name kısmı dosyanızın ismi olacaktır. Buraya Türkçe karakterler girmeyin!
TAB tuşu ile alanlar arasında geçiş yapabilirsiniz.
Dirs/Drivers kısmında dosyanızın hangi sürücü veya klasörler üzerine kaydolacağını seçebilirsiniz. Eğer programınızı diskete kaydetmek istiyorsanız, bu kısımda [-A-] sürücüsünü seçin. Format kısmı ise programın kaydedilme türüdür. Her zaman için Text olanı seçin. Diğeri kodlanmış dosyalardır. Text ise başka programlar (Notepad, edit) ile çalışabilmenizi de sağlar. TAB ile < OK >’e gelip ENTER ile iletişim kutusunu kapatalım. Böylece programımız belirttiğimiz sürücü ve klasöre belirttiğimiz ad ile belirttiğimiz türde kaydoldu.

Kayıtlı programı açmak

Daha önceden kaydettiğiniz bir programı açmak için, menüden “File » Open Program” yolu ile program açma kutusunu açın.

Öncelikle Dirs/Drives kısmından dosyanızın (programınızın) kayıtlı olduğu sürücü ve klasörü seçin. Mesela programınız diskette ise bu kısımda [-A-]’yı seçerek yan kısımdaki listeye seçilen sürücü ve klasördeki programları listeleyin. Ardından TAB tuşunu kullanarak Files kısımına yani listeye gelin. Örnekteki ekranda tek bir program görünüyor, ancak burada çok fazla dosya da bulunabilir. Bu listeden programınızı seçerek < OK > diyip programı açabilirsiniz.

Programı çalıştırmak

Yazdığınız programı “File » Run » Start” yolunu izleyerek başlatabilirsiniz.

Daha pratik bir kullanım için Start’ın karşısında yazan tuş kombinasyonunu yani Shift+F5 tuş kombinasyonunu kullanabilirsiniz. Bunu diğer komutları kullanırken de uygulayabilirsiniz. Böylece daha hızlı çalışabilirsiniz. Programımız çalışıp bittiğinde ekranın sol alt köşesinde “Press any key to continue” yazısını çıktı olarak verir. Herhangi bir tuşa basarak programlama ekranına geri dönebilirisiniz.

QBasic’den çıkmak

QBasic’den çıkmak için ise “File » Exit” yolunu kullanabilirsiniz.

Not : Bu döküman 15 Eylül 2006 tarihinde yeniden düzenlenmiştir.