0
我正在使用FMDB來管理我的sqlite數據庫。我實現了一個插入函數並使用它來插入一些行。但有一行無法插入,插入時錯誤代碼爲7,錯誤消息內存不足。如何在init sql字符串中添加轉義字符到字符串?
我跟蹤sql執行並找到一個字符串值有'可能導致錯誤的sql語句的字符。所以我想知道如何將這個字符轉換成數據庫。
SQL字符串是NSString *sql = [NSString stringWithFormat:@"INSERT INTO table(COMPANY, PAGE_NO, RECORD_ID) VALUES('%@',%d,%d)",table.company,table.page_no,table.record_id];
和控制檯輸出
<FMDatabase: 0x433e80> executeUpdate: INSERT INTO table(COMPANY, PAGE_NO, RECORD_ID) VALUES('Wendy's',-1,234)
公司是一個文本和相應的值是溫迪。 '字符可能會導致錯誤。
在此先感謝。
謝謝你的回答。我知道嗎?現在比%@好。 – chancyWu
爲什麼這樣做呢?徹底擺脫'stringWithFormat:'並且使用'sqlite3_bind_xxx'來表示所有的值,而不僅僅是字符串。 – rmaddy