2011-08-30 89 views
1

我正在使用sqlite3_exec()函數來執行SQL插入命令。當我需要插入需要編碼的字符串時,問題就開始了。編碼字符串以便插入SQLite

例如,我想插入以下字符串:「f('hello')」。如果我想插入這個字符串,我需要將「'」改爲「''」。

我的問題是,我如何編碼這些字符串?有我能指望的功能嗎?或者一張詳細列出所有需要的編碼的表格?

謝謝! :-)

回答

2

而不是手動轉義字符串(這是容易出錯,並邀請SQL注入攻擊),我強烈建議使用預處理語句和綁定值;請閱讀sqlite3_bind_XXX和sqlite3_prepare_v2

0

「也許」你應該使用類似準備好的語句。我不是SQLite的專家,但我找到了這個鏈接(http://www.sqlite.org/c3ref/stmt.html),它可以幫助你。它關於SQL語句對象。

1

使用綁定值將解決這個問題,它也會使sqlite更快,因爲它會記住先前執行的sql語句,並且可以重用它們的執行計劃。當sql語句總是略有不同時,這不起作用,因爲它散列了完整的sql語句。