$listele = "SELECT * FROM mesaj WHERE alan_kuladi = " .$kuladi;
gibi bir kodum var bir listeleme fonksiyonunun içinde. birincisi bu variable kullanımı yanlış mı? olmaması lazım ama olmuyor. buraya değişken yerine örneğin
$listele = "SELECT * FROM mesaj WHERE alan_kuladi = 'mahmut'";
yazınca mahmut'un aldığı mesajları listeliyor. fakat ne fonksiyonun içinde örneğin;
$temp = 'mahmut';
$listele = "SELECT * FROM mesaj WHERE alan_kuladi = " .$temp;
yazınca ne de fonksiyondan $kuladi'yi argüman olarak aldığımda çalışmıyor ve şöyle bir mesaj veriyor;
Unknown column 'mahmut' in 'where clause'
tamam, anladık, column'u algılayamıyor fakat nasıl aşacaığmı çözebilmiş değilim. bir yardım eden olursa süper olur.
gibi bir kodum var bir listeleme fonksiyonunun içinde. birincisi bu variable kullanımı yanlış mı? olmaması lazım ama olmuyor. buraya değişken yerine örneğin
$listele = "SELECT * FROM mesaj WHERE alan_kuladi = 'mahmut'";
yazınca mahmut'un aldığı mesajları listeliyor. fakat ne fonksiyonun içinde örneğin;
$temp = 'mahmut';
$listele = "SELECT * FROM mesaj WHERE alan_kuladi = " .$temp;
yazınca ne de fonksiyondan $kuladi'yi argüman olarak aldığımda çalışmıyor ve şöyle bir mesaj veriyor;
Unknown column 'mahmut' in 'where clause'
tamam, anladık, column'u algılayamıyor fakat nasıl aşacaığmı çözebilmiş değilim. bir yardım eden olursa süper olur.

tirnaklari yanlis kullaniyorsun.
$listele = "SELECT * FROM mesaj WHERE alan_kuladi = " .$temp;
sonucu sudur SELECT * FROM mesaj WHERE alan_kuladi = mahmut < burada mahmut tirnak icinde degil. soyle yapsan calisir ama
$listele = "SELECT * FROM mesaj WHERE alan_kuladi = '" .$temp."'";
ayrica bu kodla veritabanina sizarlar. detayli bilgi icin php sql injection diye arat ama ben kisaca korumayi anlatayim, butun string verileri escape ediyorsun. ornegin
$temp=mysql_real_escape_string('mahmut');
ya da GET ile gelen alanda direk soyle;
$listele = "SELECT * FROM mesaj WHERE alan_kuladi = '"+ mysql_real_escape_string($_GET['hede'])+"'";
erich

1