考慮帶有需要插入到SQLite表中的撇號的字符串。用撇號插入字符串值
INSERT INTO myTable (table_Title TEXT) VALUES ('world's')
如何在INSERT
聲明中標記或跳出撇號值?
考慮帶有需要插入到SQLite表中的撇號的字符串。用撇號插入字符串值
INSERT INTO myTable (table_Title TEXT) VALUES ('world's')
如何在INSERT
聲明中標記或跳出撇號值?
http://www.sqlite.org/c3ref/bind_blob.html
你不應該通過直接輸入到查詢作爲這樣的字符串。這不僅是一個麻煩,它也容易受到SQL注入攻擊的影響,這對Mac應用程序來說可能不是一個大問題,但是當您準備好了Prepared Statements時,仍然是一個糟糕的主意。準備好的語句確保底層數據庫安全地讀取實際的,未經修改的輸入值。
針對您的特殊例子(爲了簡潔/透明度檢查刪除錯誤):
sqlite3 *db;
sqlite3_open("test.db", &db);
// Create a prepared statement
sqlite3_stmt *stmt;
const char *sql = "INSERT INTO myTable (table_Title TEXT) VALUES (?)";
sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
// Bind the parameter (safely)
sqlite3_bind_text(stmt, 1, "world's", -1, NULL);
// Execute the prepared statement
sqlite3_step(stmt);
(未經測試,但你的想法)。
您可以使用''而不是單個撇號。
實施例中插入有未
Insert into table_name values('haven''t');