Şöyle bir giriş yapmayı uygun görüyorum konuya girmeden önce;Bu konu güncel olarak mysql da yeni yada yeni başlayacaklar için bir kaynak niteliğinde olsun istiyorum.Gerçi orta seviyeye de bahsedecek olan bir paylaşım olması sizlerinde katkılarıyla mümkündür tabi.Konuyu başlatmamda ki sebep;php ile ugrasanlar ,mysql veritabanıyla kulaktan dolma mı bir şeyler yapıyor yada öğrenme heveslerini nereye kadar zorluyorlar,bunu ortaya çıkarabilmektir.Yalnız şu var ki; Konunun güncel tutulması ve mümkünse sabite taşınması gerçekleştirilirse;her zaman birilerinin işine yarıyacağından adım gibi eminim.Buna binaen yazılan kaynakların bir çok yerde referans olması da paylaşımcıların üzerinde mutlulugu bir kez daha katmerleyecektir.
Konuya gelmek istiyorum şimdi;Burada yazdıgımız her paylaşım mysql veritabanı işlemleriyle ilgili olacaktır.ve dolayısıyla paylaşımlar genelde forumda cok cok sıklıkla tekrarlanan sorulara cevap niteliginde olması;konunun güncelliğini artırması acısından yegane sebep olacagını dusunuyorum.Paylasım yapanlardan tek bir istiram ettiğim konu ise;Konuyu esprilerle boğmayalım,ciddi bir konu olsun istiyorum.ve dolayısıyla ek olarak,kesinlikle ve kesinlikle çalışan kodları koymanızı istiyorum arkadaşlar,cunku konuyu buyuk ihtimalle sabite taşınması olagan oldugu icin;buraya 2 satırlık kendi yazdıgınız kodu yazın ama calısan kodu yazın.Paylasımlarınızı yazarken,mutlaka neyi anlatmak istediğinizi yazın.
Şimdi şartların sağlanabildiğini düşünerek mysql de sıkça sorulan soruların cevaplarına geçmek istiyorum.
-----------------
Soru:Mysql veritabanına formdan verileri nasıl kaydederim
Cevabı:Basit bir form yapın,aşağıdaki gibi.formdan alınan name değişkenleriyle verikaydı sorgusuna gidelim.
Kod Çizelgesi Kod Dili: php
<?php
if(!isset($_POST['kaydet']) ) {
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>"
method="post">
adınız:<input type="text" name="adi"><br>
soyadınız:<input type="text" name="soyadi"><br>
mailiniz <input type="text" name="mail"><br>
<input type="submit" name="kaydet" value="kaydet">
</form>
<?php
}else{
/* mysql ayarlarınızı kendinize gore ayarlayın */
mysql_connect ("localhost","root","varsa_sifreniz") || die ("mysql hata");
mysql_select_db ("vt_simi") || die ("db hata");
/* mysql_real_escape_string ile ozel karakterleri escape liyoruz*/
$_POST['adi']=mysql_real_escape_string($_POST['adi']);
$_POST['soyadi']=mysql_real_escape_string($_POST['soyadi']);
$_POST['mail']=mysql_real_escape_string($_POST['mail']);
$veri_kaydi="insert into veriler values ('','".$_POST['adi']."',
'".$_POST['soyadi']."','".$_POST['mail']."')";
$sorgu=mysql_query($veri_kaydi);
if(isset($sorgu) ) {
echo 'verileriniz kaydedildi';
}
else{
echo 'hata oldu '.mysql_error($sorgu).'';
}
}
?>
Soru:Mysql veritabanında türkçe karakter sorunu yaşıyorum,ne yapmalıyım?
Cevabı:Veritabanınızdaki tabloların karşılaştırmalarını latin5_turkish_ci yapın
tablo yapılarınızı da latin5_turkish_ci yapın...
ve mysql_connect diye başlayan veribağlantı satırınızın altına aşağıdaki kodları yazın;
Kod Çizelgesi Kod Dili: php
mysql_query("SET NAMES 'latin5' COLLATE 'latin5_turkish_ci'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
Hala sorunlarınızda kurtulamadınız mı? ne yaptıysam türkçe karakter problemine çözüm getiremedim diyorsanız; ve çözüm aramaktan bıktıysanız,ve diyorsanız ki,yok mu bunun bir kolay yolu derseniz; var derim...hiç karşılaştırmalarla felan uğraşmanıza gerek yok...ziyaretçiden gelen türkçe karakterleri normal standartlara çevirelim ve türkçe karakter olarak gelen herhangi bir ziyaretci bilgisine karsı aşağıdaki kod tum dertlerinize derman olacaktır.
mesela örnek olarak formdan gelen name değişkenleri adi,soyadi ve mail olsun ;aşağıdaki kodu mysql baglantınızın altına ekleyin;
Kod Çizelgesi Kod Dili: php
$_POST['adi']=mysql_real_escape_string($_POST['adi']);
$_POST['soyadi']=mysql_real_escape_string($_POST['soyadi']);
$_POST['mail']=mysql_real_escape_string($_POST['mail']);
$degistir= array("ç" => "c", "ğ" => "g", "ı" => "i", "ö" => "o", "ş" => "s", "ü" => "u", "Ç" => "C", "Ğ" => "G", "İ" => "I", "Ö" => "O"
, "Ş" => "S", "Ü" => "U");
$_POST['adi']=strtr("$_POST[adi]", $degistir);
$_POST['soyadi']=strtr("$_POST[soyadi]", $degistir);
$_POST['mail']=strtr("$_POST[mail]", $degistir);
$veri_kaydi="insert into tablo values ('','".$_POST['adi']."','".$_POST['soyadi']."','".$_POST['mail']."')";
$sorgu=mysql_query($veri_kaydi);
if(isset($sorgu) ) {
echo 'verileriniz kaydedildi';
}
else {
echo 'hata oldu';
}
işte bu kadar,artık hiç bir şekilde türkçe karakter probleminiz olmayacaktır.