Sorun mysql escape characters veya addslashes gibi bir fonksiyonla
kullanıcıdan gelen girdiyi temizlemediğiniz için oluşuyor olabilir,
genelde MySQL & PHP ile yeni tanışan arkadaşlar bu tip hatalarla çok sık
karşılaşırlar. PostgreSQL bu tip sorunları sizin için variable insert
mantığı ile çözerken, MySQL sizin için bu sorunu çözmez, oturup çözmeniz
beklenir.
Yapacağınız en büyük iyilik tüm gelen veriyi bir fonksiyon yardımı ile
mutlaka temizlenmiş ve tırnakları kurtarılmış veriye dönüştürmek
olacaktır, son kullanıcıya HİÇ BİR ZAMAN ve ASLA güvenmeyin, gelen
veriyi isterse dropdown'dan gelsin mutlaka ama mutlaka temizleyin.
Örnek olarak aşağıdaki kodu inceleyin, fark edeceğiniz üzere $city
değişkeni ' ile başlıyor ve temizlenmezse mutlaka hata verir.
<?php
$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");
$city = "'s Hertogenbosch";
/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
printf("Error: %s\n", $mysqli->sqlstate);
}
$city = $mysqli->real_escape_string($city);
/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
printf("%d Row inserted.\n", $mysqli->affected_rows);
}
$mysqli->close();
?>
23.11.2012 17:33 tarihinde, Nilüfer Kibar yazdı:
direkt host üzerinden yapıyorum işlemleri:)
--
*Ömer Barlas*
[email protected]
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php