(1)
php değişken ile sql sorgusu bir soru
$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 a
$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.
0
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'])+"'";
0