在sqlite中转义INSERT查询

时间:2013-08-24 19:13:45

标签: vb.net sqlite escaping

如何在SQLITE中正确转义以下查询?我似乎无法在最后找到一种有效的方法来逃避文件路径。

insert into mytable values ('IMG_1862_a.jpg', 'True', 'True', 'I:\where i've been\stock laptop\IMG_1862_a.jpg')

我尝试了很多,包括:

    insert into mytable values ('IMG_1862_a.jpg', 'True', 'True', 'I:\where i^'ve been\stock laptop\IMG_1862_a.jpg') ESCAPE '^'

1 个答案:

答案 0 :(得分:1)

在SQL中,字符串中的引号通过加倍来转义:

insert into mytable values(..., 'I:\where i''ve been\stock laptop\IMG_1862_a.jpg')

但是,您应始终使用参数来避免格式​​化此类问题,或SQL injection attacks

Dim sql As String = 'INSERT INTO MyTable VALUES(@file, @a, @b, @path)'
Dim cmd As SqlCommand = New SqlCommand(sql, con)
With cmd.Parameters
    .Add(New SqlParameter("@file", "IMG_1862_a.jpg"))
    .Add(New SqlParameter("@a", "True"))
    .Add(New SqlParameter("@b", "True"))
    .Add(New SqlParameter("@path", "I:\where i've been\stock laptop\IMG_1862_a.jpg"))
End With