Sql 查询无法处理引号
Sql query can not handle quotation marks
我尝试使用 vibe.d 实现一个小型博客应用程序。我在这个地址有一个表格
http://localhost:8888/gönderiler/oluştur
用户输入 post 标题和 body。然后将这些信息存储在数据库中。到现在为止一切顺利。
假设用户输入一个带引号的字符串,如下所示:
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 error: Unknown column 'deneme' in 'field list'
更新:已解决
我按照提示加了双引号。
auto başlık = this.başlık_.replace("'",`''`);
auto içerik = this.içerik_.replace("'",`''`);
在它旁边加上另一个引号,像这样:
'deneme''miz'
如果不行就加双引号
"deneme'miz"
我尝试使用 vibe.d 实现一个小型博客应用程序。我在这个地址有一个表格
http://localhost:8888/gönderiler/oluştur
用户输入 post 标题和 body。然后将这些信息存储在数据库中。到现在为止一切顺利。
假设用户输入一个带引号的字符串,如下所示:
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 error: Unknown column 'deneme' in 'field list'
更新:已解决
我按照提示加了双引号。
auto başlık = this.başlık_.replace("'",`''`);
auto içerik = this.içerik_.replace("'",`''`);
在它旁边加上另一个引号,像这样:
'deneme''miz'
如果不行就加双引号
"deneme'miz"