0

我尝试使用 vibe.d 实现一个小型博客应用程序。我在这个地址有一个表格

http://localhost:8888/gönderiler/oluştur

用户输入帖子标题和正文。比这些信息存储在数据库中。到现在为止这么好。

假设用户输入了一个带引号的字符串,如下所示:

定罪

比sql查询变成这样:

插入到 gonderiler(kullanici_no,baslik,icerik,created_at,updated_at)值(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("'",`''`);
4

1 回答 1

1

在它旁边加上另一个引号,如下所示:

'deneme''miz'

如果这不起作用,只需加上双引号

“deneme'miz”

于 2017-09-25T11:51:26.440 回答