當我的iOS應用程序在與SQLite數據庫接口時依賴於特定的雜注語句的功能是否安全?依賴於SQLite雜注語句安全嗎
具體的註記語句可以被移除和其他的SQLite的未來版本中加入。不保證向後兼容性。
然而,根據this upvoted SO answer:
可以使用雜注來獲得索引列:
PRAGMA index_info(索引名);
而這一次拿到的列名的表:
PRAGMA table_info(表名);
我的具體使用情況是,我想我的iPhone應用程序,以檢查是否特定列通過FMDB SQLite的包裝進行查詢之前存在。恐怕使用PRAGMA table_info(table-name)
可能會在假定的未來iOS版本中產生意想不到的結果,其中包括SQLite的新版本,其中維護人員決定放棄對此編譯指示語句的支持。
另一種辦法是設法準備一個查詢只是一個表中的一個列的聲明。如果準備聲明失敗,則知道列不在那裏。也許在應用程序啓動時檢查一次。 – rmaddy
感謝您的輸入。這就是我現在要做的事情(即'SELECT column-name FROM table-name LIMIT 1'並檢查錯誤)。 – tboyce12