PHP ve MySQL e geçiş sürecim ve bu konulardaki eksikliklerim gün geçtikçe kapanıyor. Ancak sancılı bir dönem olduğu en azından benim için gün gibi ortada. Her yazdığım koddan sonra yada yazmak istediklerim için araştırmaya girişmek beni yavaşlatan başlıca sebeplerden. Fakat ilk kompleks projemi bu şekilde hazırlıyor olmamın çok önemli bir nedeni var. Yıllarca WEB konusunda VB Script ve Access veritabanı ile uğraşmış biri olarak, PHP ve nimetlerinden yararlanmanın tek yolunun bu şekilde kodlama yapmaktan geçiyor olması. Çünkü daha önce PHP ile ilgili her ne kadar bir kitap bitirmiş olsamda, düzey bakımından kesinlikle ihtiyacımı karşılayabilecek seviyede değildi. Dedim ya basit PHP kodlamalarımı belki bu kitap sayesinde yaptım, ancak işin içine daha özgün ve karmaşık yapılar girdiğinde, muhtemelen hiç bir kitap ihtiyaçları karşılayacak yeterliliğe sahip olmuyor.
Yazının Devamı »
Veritabanı ile uğraşanlar bilirler, veritipleri performans ve veri kapasitesi bakımından önemli bileşenlerdir. Oluşturulan alanlarda öncelikli olarak işimize uygun olacağını düşündüğümüz veritipleri ile çalışmak hedeflerimizin başında gelir. Yakın zamanda
Char ve
Varchar veri tipleri arasındaki farklar konusunda yeterli bilgiye sahip olmadığımın farkına vardım ve hem not almak, hemde paylaşmak maksadı ile buraya yazmak istedim.
Char ve
Varchar veritipleri arasındaki farkları bir liste halinde aşağıda bulabilirsiniz.
- Char veritipi 0 ile 255 karakter arasında veri tutabilirken, Varchar veritipi MySQL v5,03 ten itibaren 0 ile 65,535 karakter arasında veri tutabilmektedir. MySQL’in önceki versiyonlarda ise Char veritipi ile aynı kapasiteye sahiptir.
- Char veritipi, tanımlandığı kadar kapasitenin tamamını kullanır. Örnek olarak siz 50 karakterlik bir alan tanımlamışsanız, bu alana 20 karakter bile girmiş olsanız, geriye kalan sağdan 30 karakterlik alan boşluk karakteri ile doldurulur. Varchar veritipi ise değişken bir yapıya sahiptir ve tanımlanan karakter katarına kadar olan boyutta değişkenlik gösterebilir. Yine örnek vermemiz gerekirse, 50 karakterlik bir alan için 30 karakter girdiğinizde hafızada sadece 30+1 karakterli bir alan kaplar.
- Char veritipinin kullanım alanı olarak sabit uzunluklu veri yapıları gösterilebilir. (Örn: telefon numaraları, kredi kartı no vb.) Varchar ise değişken uzunluklu veri yapıları için uygundur. (Örn: isim, mail vb.)
- Ayrıca bir tabloda varchar veritipinde tek bir alan bile yer alsa, bu aynı tablodaki diğer char veritipi ile belirlenmiş alanlarında Varchar biçiminde çalışmasına neden olur.
Burada bahsettiklerim dışında başka farklılıkların olduğunu biliyorsanız, yorum kısmında belirtebilirsiniz.
OpenOffice.org, Microsoft Office paketinin alternatifi sayılabilecek açık kaynak ücretsiz bir program paketi. Açıkçası paket içeriği hakkında uzun uzadıya bilgi vermek istemiyorum. Yalnızca paket içerisinde gelen Base programı ile MySQL veritabanlarına nasıl bağlanabileceğiniz konusunda bilgi vereceğim.
Öncelikle OpenOffice.org Base programını çalıştırmadan önce, OpenOffice.org platformumuza MySQL Native Driver eklentisini kurmalıyız. Bunun için kullandığınız işletim sistemine göre verdiğin linkten eklenti dosyasını çekmelisiniz.
Yazının Devamı »
Baştan gerçekleştirdiğim windows xp sp3 kurulumu sonrasında tüm taşınabilir (
Portable) uygulamalarımı test etmeye karar verdim. Elbette bunların arasında
XAMPP ta yer alıyor. XAMPP içinde
Apache,
MySQL,
Filezilla ve
Mercury gibi servisleri barındıran bir web server. XAMPP kullananlar bilirler, XAMPP ı istediğiniz herhangi bir dizinde kullanabilmeniz için XAMPP ana dizini içerisinde yer alan
setup_xampp.bat adlı dosyayı dizin ayarlarının otomatik olarak yapılması için çalıştırmanız gerekir. Benimde ilk yaptığım işlem bu oldu. Bir sonraki adımda ise XAMPP Control Panel i çalıştırıp, Apache ve MySql i başlatmak istedim. Ancak MySql sorunsuz olarak başlamasına rağmen, Apache yi başlatma sırasında şu hata mesajı ile karşılaştım.
"Uygulama düzgün olarak başlayamadı (0xc0150002). Sonlandırmak için TAMAM düğmesini tıklatın."
Biraz araştırdıktan sonra bu hata mesajına neden olabilecek birden çok etkenin olabileceğini gördüm. Ancak burada vereceğim ve benim sorunumun ortadan kalkmasını sağlayan tek bir çözüm söz konusu. Çözümün adı
Visual C++ Çalışma kütüphaneleri. Apache çalışabilmek için bu kütüphanelere ihtiyaç duyuyor. Çalışma kütüphanelerini bilgisayarınıza kurabilmek için aşağıda linkini verdiğim dosyayı bilgisayarınıza çekip, kurulum işlemini gerçekleştirmelisiniz.
http://www.microsoft.com/downloads/i...redist_x86.exe
PHP üzerinde uğraştığım ve en çok sorun yaşadığım konulardan biri veritabanlarıdır. Sonuçta bir çok projemin temelinde öyle yada böyle bir şekilde veritabanları söz konusudur. Özellikle PHP söz konusu olduğunda, bu veritabanı meselesi daha çok ön plana çıkmaya başladı. Bildiğiniz gibi günümüzde PHP ile birlikte en çok kullanılan veritabanlarından biri MySQL. Doğal olarak benimde daha çok üzerinde durduğum veritabanlarını oluşturuyorlar. Maalesef her geçen gün bu konuda yeni bir şey öğrenmek ile birlikte, bazı takıldığım noktalarda olmuyor değil.
Bir arkadaşımdan öğrendiğim bir hazır scripti, kendi serverımda denemek isterken scriptin kurulumu sırasında, veritabanı ile iletişim kurmak için girdiğim ve doğruluğundan tamamen emin olduğum veritabanına erişim bilgilerine rağmen bir problem ile karşılaştım. Daha sonra kurulum dosyasının kodlarını incelediğimde, veritabanı bağlantısı için
mysql_connect() fonksiyonu yerine mysqli kütüphanesinden yararlanılabilmesi için kullanılan
mysqli_connection() fonksiyonuna rastladım. Zaten aldığım hatada veritabanı ile bağlantı kurulamadığı yönündeydi. Dolayısı ile tekrar yaptığım incelemelerimde her verinin doğru girilmesine karşın, karşılaştığım sorunun mysqli_connection() fonksiyonunun kullanımı ile ilgili olduğu sonucuna vardım. Yani kısaca
mysql_connection() fonksiyonun aldığı parametreler ile
mysqli_connection() fonksiyonunun aldığı parametrelerin birbirlerinden bariz farklılıklar barındırdığını anladım.
Yazının Devamı »
Bugün küçük bir araştırma yaparken çok güzel bir inceleme okudum. İncelemenin içeriği
PHP ve
ASP.NET dillerinde
MySQL ve MSSQL (Microsoft SQL) gibi veritabanlarının gösterdiği performans farklılıklarından oluşuyordu. Aslında araştırmam daha çok
InnoDB ve
MyISAM motorlarının performans farklılıkları ile sınırlıydı. Ancak daha bütünleşik ve farklı platformlarıda içine alan güzel bir inceleme ile karşılaşmak, daha geniş fikir edinebilmem açısından çok yararlı oldu.
İncelemeyi gerçekleştiren arkadaşımızın adı
Görkem PAÇACI. Kendisini şahsen tanımıyorum ancak bu çalışmasından dolayı kutluyorum. İncelemenin benim açımdan eksi tarafı, tüm incelemenin Windows sistemleri üzerinde gerçekleştirilmiş olması idi. Sonuç itibarı ile PHP ile uğraşıyorum ve hosting paketimin bulunduğu server da Linux bir sistem. Böyle olunca inceleme üzerinden sadece küçük bir fikir yürütebiliyorum. Ama windows sistemler üzerinde host sahibi olan arkadaşların ASP.NET MySQL ve MSSQL, PHP MySQL ve MSSQL ilişkileri hakkında ayrıntılı fikir sahibi olabileceğini umuyorum.
Yazının Devamı »
Yeni uğraşlarımdan biri de MySQL veritabanları. Şu an üzerinde çalıştığım bir kaç ASP projede Microsoft Access veritabanı kullanıyorum. Ancak 50.000 kayıtlı projemde ciddi performans sorunları ile karşılaştığım için kendi bilgisayarımda bu proje için alternatif çözümler aramaya başladım. İlk aklıma gelen kullandığım veritabanı sistemini değiştirmem gerektiğiydi. Bende sistemime bir MySQL server kurdum ve Access veritabanımdaki 50.000 kayıtı yeni bir MySQL veritabanına aktardım. Projemi bu şekilde çalıştırdığımda ortaya çıkan ciddi performans artışı beni inanılmaz mutlu etti. Bende ortaya çıkan performans artışını gördükten sonra artık yeni projelerimde Ms Access kullanmaktan vazgeçtim. Tabi hosting paketimin MySQL desteğinin bulunmayışı sebebi ile hali hazırda elimde bulunan MySQL destekli projemi hayata geçiremiyorum ancak bu bana Microsoft SQL Server’dan yararlanmam gerektiği konusunda bir uyarı oldu. Ancak bu yazıda MySQL ’e devam.
Ms Access ’e son!!! Bundan sonra hazırlayacağım projelerde çok basit bir alt yapı gerektirmediği sürece Ms Access kullanmama kararı aldım. Yazının devamında ASP ’de MySQL ile tablo yaratımı, kayıt girişi, listeleme, düzenleme ve silme işlemlerinin nasıl yapılabileceğine dair kodları bulabilirsiniz.
Yazının Devamı »