Basit bir günlüğü vibe.d'ye taşıyabilir miyim diye düşünüyordum.
http://localhost:8888/gönderiler/oluştur
adresinde basit bir form var. Kullanıcı bir gönderi başlığı ve içeriğini giriyor. Daha sonra bu veritabanına kaydediliyor. Buraya kadar her şey güzel ancak şöyle bir şey farkettim. Eğer kullanıcı eğer içerik alanına içinde tırnak olan bir ifade girerse hata veriyor.
Doğal olarak sorgu ifadesi şuna dönüşüyor:
INSERT INTO gonderiler (kullanici_no, baslik, icerik, created_at, updated_at) VALUES (1, 'Deneme', 'deneme'miz', '2017-09-25 12:29:30', '2017-09-25 12:29:30')
Dikkat ederseniz 3 tane tırnak oldu.
auto başlık = this.başlık_.replace("'","\'");
auto içerik = this.içerik_.replace("'","\'");
logInfo("%s %s", başlık, içerik);
auto sqlKomutu = "INSERT INTO gonderiler (kullanici_no, baslik, icerik, created_at, updated_at) VALUES (1, '"
~ başlık ~
"', '"
~içerik ~
"', '"
~ zaman ~
"', '"
~ zaman ~
"')";
İlk planda ' karakterlerini ' ile değiştirmeyi düşündüm ama sanırım yukarıdaki çalışmıyor.
Php ve mysql için sanırım şöyle bir işlev varmış.
http://php.net/manual/en/function.mysql-real-escape-string.php
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]