我尝试使用vibe.d实现一个小博客应用程序。我在这个地址中有一个表格
http://localhost:8888/gönderiler/oluştur
用户输入帖子标题和正文。比这些信息存储在数据库中。到目前为止一直这么好。
假设用户输入带引号的字符串,如下所示:
deneme'miz
比sql查询变成这样:
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')
正如您所看到的那样有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错误:“字段列表”中的未知列'deneme'
更新:已解决
我按照建议推了双引号。
auto başlık = this.başlık_.replace("'",`''`);
auto içerik = this.içerik_.replace("'",`''`);
答案 0 :(得分:1)
在它旁边加上另一个引号,如下所示:
' deneme'' MIZ'
如果这不起作用,只需加上双引号
" deneme' MIZ"