我尝试使用Vibe.D实现一个小型博客应用程序。我在这个地址中有一个形式
http://localhost:8888/gönderiler/oluştur
用户输入帖子标题和正文。这些信息存储在数据库中。到目前为止,一切都很好。
假设用户输入一个带有引号标记的字符串:
neme'miz
比SQL查询变得如此:
插入Gonderiler(Kullanici_no,Baslik,icerik,create_at, updated_at)值(1,'neme','deneme'miz','2017-09-25 12:29:30', '2017-09-25 12:29:30')
正如您所看到的,有3个引号标志。
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 ~
"')";
我试图用'替换"字符",但我认为它不起作用。
我的一个朋友建议使用这些字符。
merhaba "dünya"
但是这次我会得到这样的错误:
mysql错误:未知列'nememe'在"字段列表"
中
更新:已解决
我按照建议的双引号标记。
auto başlık = this.başlık_.replace("'",`''`);
auto içerik = this.içerik_.replace("'",`''`);
在其旁边添加另一个引号标记,例如:
'deNeme'miz'
如果那不起作用,只需放置双引号
" neme'miz"