php etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
php etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

PDO (Php Data Objects) nedir ?

“PHP Data Objects (PDO) eklentisi PHP içerisinde veritabanlarına erişim için küçük, kararlı bir arayüz tanımlar. PDO arayüzünü implemente eden herbir veritabanı sürücüsü kendi eklentilerindeki veritabanına has özelliklerini kullanılabilir hale getirirler. PDO eklentisinin kendisi ile herhangi bir veritabanı işlevi yerine getiremezsiniz. Veritabanına erişmek için veritabanına has PDO sürücüsünü kullanmalısınız.

PDO veri-erişim katman soyutlaması sunar, yani kullandığınız veritabanı ne olursa olsun sorgu ve veri çekmek için aynı fonksiyonları kullanırsınız. PDO veritabanı soyutlaması sağlamaz; SQL in yeniden yazılması değildir, veya eksik özelliklerin tamamlanması değildir.

Php kendi sayfasında tanımladığı biçimiyle ve benim bedbahd ingilizcemin yettiği kadarıyla çevirisi bu biçimde. Şimdi durumu sadeleştirmek gerekirse. PHP nin Nesne Yönelimli Programlamaya ağırlık verdiği 5 sürümü ile gelen PDO bir veri erişim katmanıdır, PDO interface ini implemente ederek oluşturulmuş sürücülerini kullanarak standart bir veri erişim modeli oluşturmaktadır. PDO da standard fonksiyonlar vardır: exec,query,fetch v.b. Bu fonsiyonlar sürücü desteği bulunan bütün veritabanları için aynıdır.

Örneğin MySql e sorgu yapmak için PDO->query() metodu kullanılacaksa firebird..

PgSql veya Oracle (PDO interface ini implemente ederek oluşturulmuş birkaç sürücü daha mevcuttur; IBM,Informix,SqLite,Sybase,MicrosoftSQL,ODBC) içinde aynı metod kullanılacaktır. 

Bu da bize farklı veritabanları kullanmamız gerektiği zaman bunların PHP için olan eklentilerine dalıp farklı fonksiyonları içerisinde kayolmamızın önüne geçmekte. 

Tabi sağladığı yararlar bununla sınırlı değil, ileride kullandıkça örneklerimizdeki açıklamalarla sağladığı faydalar daha net anlaşılabilir.

PDO 5.1 sürümü ile kullanılmaya başlamıştır. PDO yu kullanabilmek için  php.ini dosyasındaki PDO yu etkinleştirmelisiniz bununla birlikte veritabanına has olan PDO sürücüsünü de etkinleştirmelisiniz. 

Yoğun biçimde MySql kullanıldığı için biz MySql eklentisini etkinleştireceğiz, bunun için php.ini ye şu satırları ekleyebilirsiniz;

[PHP_PDO]
extension=php_pdo.dll
[PHP_MYSQL]
extension=php_mysql.dll

Bu adımdan sonra bir örnek ile PDO kullanımını açıklayalım => Örnek 

Yukarıdaki örneği açıklayalım. PDO kurucusunda bulunan “dsn” parametresi PDO nun hangi veritabanı sürücüsünü kullanacağını belirlemesine yardımcı olan veriyi barındırır. 

Burada “mysql” yerine “mssql” veritabanına bağlanmak isteseydik “dsn” imiz şöyle olacaktı: ‘mssql:host=localhost;dbname=test’. 

Bu durumda PDO MsSql sürücüsünü arka planda yükleyecekti (tabi MsSql sürücüsünü öncelikle sizin aktif etmiş olmanız şartıyla).

Burada PHP de daha önce olmayan ve 5. versiyonu ile gelen “try catch” bloğundan bahsetmek gerekecek sanırım.  “try catch” bir hata yakalama ve oluşan hatayı göz ardı etme mekanizmasıdır diyebiliriz kabaca. İki bloktan oluşan bu yapı ile ulaşılmaya çalışılan sağlamlıktır. Uygulamada bir hata gerçekleştiğinde oracıkta sonlanmak yerine size bu hatayı yönetebilmenize olanak sağlar.

Örneğimizdeki “try catch” bloğunda PDO kurucusu sağlıklı çalıştığında ve veritabanı bağlantısını sağladığında “try” blogu çalışacak ve sorgu sonucu yazılacak ekrana. Bir hata meydana geldiğinde ise “catch” bloğu çalışacak ve meydana gelen hata ekrana yazılcaktır.

PDO ile ilgili örneklere ve PHP5 yeniliklerine ilerleyen zamanlarda değinilecektir.

Kod Yazmak (1)

Bu işin altın kuralı sağlam psikoloji ve bilgidir.. Genelde moraliniz yüksekken başlayın ki verimli çalışmalar gerçekleştirin...

Gerçekleştirdiğiniz projeleri sevin ve bir koder olduğunuzu hiç aklınızdan çıkarmayın.. Herkesin bilmediği bir dili sembollerle konuşturduğunuzun bilincine varın ve yaptığınız için kutsallığının farkındalaşın..
 
Özgün olmaya çalışın.. Koderler için bu da çok önemli bir kuraldır. Özgün olmayan birşeylerin fazla ömürleri olmaz.. Gelip geçici projelere imza atmak istemeyenler kendi yorumlarını katacakları kodlar yazmalıdır.


Kod yazarken sıvı tüketimine önem verilmelidir. Ki bu sağlıklı düşünmeyi olumlu yönde tetikler...

Kod yazarken müzik dinlemeyi sevenler hareketli müzikler yerine slow müzikler tercih etmelidirler.. Çünkü hareketli müzikler her ne kadar canlılık, enerji veriyor gibi görünseler de zihni gereksiz yere kendine odaklamaktadır.. Halbuki bizim kod yazarken zihnimizi ciddi derecede meşgul etmeyecek dinlerken keyif verecek bir fon müziğine ihtiyacımız vardır. Bu tarifte kuşkusuz slow müzikle örtüşmektedir..

En önemli maddelerden biride oda sıcaklığıdır.. Çok sıcak yada soğuk olması bizi negatif yönde bir bıkkınlığa sevkedebilir..Oda sıcaklığı rahat edebileceğimiz derece tespit edilecek klima yada havalandırma yardımıyla stabil ayarlanmalıdır..

Klavyemiz yada mausemuz pilli ise yedek piller ayarlanmalı..Laptop kullanıyorsak şarj durumu kontrol edilmelidir ki planlanmamış aralar vermek zorunda kalarak projeden soğumayalım..
Projelerimi kodlarken kullandığım Asus klavye ve mauseum

Kendimden örnek vermem gerekirse yeni bir proje kodlamaya başlarken yumuşak tuşlu ve kablolu klavye ve mause tercih ediyorum.. Ve aynı zamanda sık sık klavyemi yenilerim.. Çünkü böyle ufak yenilikler emin olun motivasyon ve konsantrasyonu pozitif etkiliyor.. Genellikle oyun klavyeleri tercih ediyorum ama şu sıralar bu kuralları biraz aşmış durumda projelerimin kodlamalarını yedek pillerimi stoklamak koşuluyla ''Asus" kablosuz klavyem ve mauseumla kodlamaktayım..

Hemen hemen her projeye başlamadan önce iyi bir dinlenin ve günlük periodlarda en az 8 saat uyumaya özen gösterin.. Çünkü emin olun iyi dinlenmezseniz gözünüzün önünde duran en kolay bir kod parçacığı hatası bile dikkatinizden kaçabiliyor.. Gerekiyorsa geç olsun temiz olsun mantığı gütmeye çalışın..

Kısa ve öz aralar vermeye özen gösterin..Çünkü yıllardan beridir zihnimize hep şu mantık yerleşmiştir.. "TENEFÜS"...
Şunu bilin ki bu kısa molalar bakış açımızı değişik açılardan yenilememize destek olabilecek bir etkendir.

Şimdilik bu kadar yazımın (2). bölümünde görüşmek üzere...

Php'de Çerezleri ( cookie )

Girilen sitelerin tarayıcılar(browserlar) üzerinde bıraktığı izlere cookie, Türkçesiyle de çerez denir. Bu izler siteye tekrar ziyaret edildiğinde yeniden gönderilerek bazı şeylerin yeniden hatırlanmasını sağlar.
Mesela giriş formlarında kullanıcının şifresini ve kullanıcı adını cookieler sayesinde tarayıcıya kaydederek bir sonraki gelişinde bilgilerini yeniden girmek zorunda kalmadan direkt giriş yapabilir.
Temel olarak kullanıcı bilgilerini hatırlanmasında kullanılan çerezleri hayal gücünüzün el verdiği kadar bir çok alanda da kullanmak mümkün.
PHP’de cookie oluşturma işini bir setcookie() fonksiyonu ile yapıyoruz. Fonksiyonda tarayıcıya gönderilecek ve saklanacak olan değerin anahtarını ve içeriğini belirttiğimiz gibi bir de ne kadar süre tarayıcıda saklanacağınıda belirtiyoruz.
setcookie("çerezim", "selam dünya");

Yukarıdaki örnekte çerezim adında bir cookie oluşturduk ve değerinide selam dünya yaptık. 
Ve 3. parametre olarak hiç bir şey girmediğimiz için varsayılan olarak tarayıcı kapatıldığında 
çerez silinecek.Eğer çerezin bizim istediğimiz bir gelecek tarihte silinmesini istiyorsakta 
3. parametreyi devreye sokacağız. İşte bunun içinde bir örnek:

setcookie("çerezim", "selam dünya", time() + (60*60*24));

Şimdi 3. olarak girdiğimiz time() + (60*60*24) bu parametre şu anki zamana saniye cinsinden 60*60*24 tam olarak 24 saat yani 1 gün eklemiş olduk.
Bu oluşturduğumuz çerezin son kullanma tarihi şuandan itibaren + 24 saat sonra demek oluyor.1 gün sonrasında bu çerez siteye girildiğinde gönderilmiyor olacak.

Oluşturduğumuz bir çerezi silmek için yine normal bir çerez tanımlarmış gibi setcookie() fonksiyonunu kullanıyoruz. Tek fark 3. son kullanma tarihi paramteremize geçmiş bir zaman giriyoruz. Bu sayede çerezin tarihi dolmuş varsayılıp hemen siliniyor. Örnek olarak bu çereze time() – 3600 diyerek 1 saat öncesini göstereceğiz ve çerez silinmiş olacak:

setcookie("çerezim", "selam dünya", time() - 3600);

Çerez kullanımı $_COOKIE dizisi üzerinden yapılır. Bu dizi otomatik olarak o sayfaya gönderilen çerezlere göre oluşur. Yukarıdaki oluşturduğumuz çereze ulaşmak için aşağıdaki kodu kullanırız, ki bu koddan ne kadar basit ve anlaşılır olduğu belli oluyor:

echo $_COOKIE['çerezim'];

Ekranda yukarıdaki örneğin devamı olarak gösterdiğimiz bu örnekten ötürü selam dünya yazar.

Çerezleri oluşturmakta ve silmekte olduğu gibi değerini değiştirmekte de setcookie() fonksiyonunu kullanıyoruz. Ve oluşturmakta olduğu gibi değerini değiştirmekte aynıdır. Sadece çerez adına önceden tanımladığımız adı yazmamız yeterli. Eğer çerez yoksa oluşturulur varsa değeri değiştirilir.

setcookie("çerezim", "selam dünya");
setcookie("çerezim", "merhaba dünya");

echo $_COOKIE['çerezim'];

Ekranda merhaba dünya yazar.

Tüm değişkenlerin varlığını kontrol edecek olan isset() fonksiyonu ile bir çerezin tanımlanıp tanımlanmadığını bulabiliriz. Kullanımı if ifadesi ile olacak olan bu fonksiyonun bu kullanımını henüz bu ifadeyi anlatmadığımız için örnek göstermiyorum.

Ekranda bir şey yazmaz, FALSE değeri döner. Çünkü böyle bir çerez tanımlamadık. Tanımlanmış bir çerez olsaydı ekranda olumlu manada 1 yazardı.

Keyifli kodlamalar..

Değişken Kavramı

Bu ders sonunda değişkenin ne olduğunu ve nasıl kullanıldığını öğrenmiş olacaksınız.

Önemli: Php öğrenmek istiyorsanız değişken kavramını çok iyi anlamalısınız. Bu konu birçok derste kısaca birkaç cümle ile anlatılıp geçilmektedir. Fakat iyi bir programcı değişkenlere hakim olan kişidir. Özellikle diziler konusuna gelince beni daha iyi anlayacaksınız.
Php de her programlama dili gibi bilgisayar hafızasındaki bilgilerle çalışır. bunun sunucu makinelerde olması farketmez, durum aynıdır.
En basit hali ile değişkeni bir kutu olarak düşünebiliriz. Kutu ne işe yarar içine eşyalar koymaya yarar.


Şimdi evinizde böyle bir kutu olduğunu düşünün. içersine eşyalar koyuyorsunuz. ve üzerindeki bu ismi değiştirebiliyorsunuz. Herhalde evinizde böyle bir kutu olsa üstüne "Değişken" yazmayacaktınız. Diyelim ki içine Oyuncaklarınızı koymak istediniz bu durumda kutunun üstüne ne yazardınız. şunlardan birini seçin.

  • Plastik ördek
  • Oyuncak
  • Gereksiz eşya




Ben olsam Oyuncak yazardım. çünkü daha kısa ve içindekileri doğru temsil ediyor. Plastik ördek diyenler büyük hata yapmış oldu çünkü kutuya sadece ördek koymayacağız. Bu sebeple daha genel bir isim yazmamız gerekiyor. 

Gereksiz eşya yazabilirsiniz ama buradaki sorun da şu: kutuyu kapatırsanız içinde ne oldğunu hatırlamak zor olacaktır.
Eğer burdaki mantığı anladıysanız Php programlama da bundan daha karışık değil. Fakat ille de kutuya"Arabam" yazmak isteyenler okumayı bırakıp bir oto tamircisinde işe girebilir. daha kısa yoldan para kazanmış olurlar ve sevdikleri işi yapmış olurlar smiley
Şimdi gelelim işin Php kısmına. Php ile değişken yaparken başına harfi yazmak gerekiyor (bakıyorum paryı gördünüz gözünüz açıldı, işte php böyle birşey daha öğrenmeden paranın ucunu gösteriyor). yukarıdaki örneğe uygun olarak oyuncak isimli bir değişken yazarsak. $oyuncak şeklinde yazmamız gerekiyor.ve işte ilk php kodumuz geliyor.
$oyuncak="Ördek";
Bunu açıklarsak, oyuncak isimli değişkene Ördek koymuş olduk. Yukarıdaki kutuda sadece ördek olduğunu düşünürseniz kolayca anlarsınız.  Oyuncak yazan kutuya ördek koyduk.
Şimdi ördeğimizi biraz geliştiriyoruz. (pardon örneğimizi dicektim) smiley okuyormusunuz diye kontrol ettim. Programlama diyince korkanlar için ortamı yumuşatıyorum.
$oyuncak="Araba";
Şu anda kutuya Araba koyduk. burada dikkat edeceğiniz nokta artık kutuda ördek yok. peki ördek nereye gitti diyeceksiniz. ördek öldü. uçtu. kayboldu. Yani kutuya yeni birşey koyunca eskisi kaybolur. eskisi size lazımsa kendinize başka bir kutu yapmalısınız. şöyle ki:
$oyuncak1="Ördek";$oyuncak2="Araba";
Gördünüz mü bilgisayarda kutu üretmek çok kolay (yani değişken) Ufak ufak sizi değişken demeye alıştıralım. kutu çocuklar için, sen büyüdün artık. kocaman oldun. Değişken de bakayım, D-e-ğ-i-ş-k-e-n... afferiiim. smiley
Şimdi gelelim bu değişkenle neler yapabileceğimize, tamam öğrendik ama bunu nasıl kullanacağız :
Örnek: Diyelim ki web sitemizde birsürü çocuk üyemiz var. ve bu üyelerin hangi tür oyuncak sevdiğini kaydettikleri bir bölüm yaptık. sonra biz bunları üye profili sayfasında göstermek istiyoruz. (Kaydet tuşuna falan kafayı taklayın. onları da kolayca öğreteceğim)

Örneğin: Ali diye bir üyemiz var. ve Araba seviyor. profili de şöyle görünmeli;
üye adı: Ali
Araba ile oynamayı seviyor.
Alinin profiline giren herkes yukarıdaki gibi bir yazı görüyor. şimdi bu yazıyı kim hazırlayacak. 

Tabii ki sizin bunu yazdırmak için şöyle bir kodlama yapmış olmamız gerekiyor; 
print " Üye adı $isim ";
print $isim , $oyuncak ile oynamayı seviyor"
Burada print komutuna kafayı takmayın. sadece tırnak içindekileri gösteriyor, kendisi görünmüyor. yani siteye girenler Print kısmını görmüyor sadece tırnak içindekini görüyor. bakalım ne var tırnak içinde.
$isim ve $oyuncak diğerleri aynen ekranda görünüyor. bu ikisi ise bildiğiniz gibi hayali kutular. içinde ne varsa onu gösteriyor.
Şimdi aşağıdaki kodları anlamaya çalışalım.
$isim="Ayşe";$oyuncak="Bebek";
print " Üye adı $isim ";
print $isim , $oyuncak ile oynamayı seviyor"
Bilin bakalım bu sayfaya biri girdiğinde ne görecek:
üye adı: Ayşe
Bebek ile oynamayı seviyor.
Keyifli Kodlamalar...