0

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 '^'
4

1 に答える 1

2

SQL では、文字列内の引用符は二重にすることでエスケープされます。

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

ただし、このようなフォーマットの問題やSQL インジェクション攻撃を避けるために、常にパラメーターを使用する必要があります。

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
于 2013-08-24T20:30:51.800 に答える