SQLITE3中INSERT語句的注意事項

2021-06-28 17:04:35 字數 584 閱讀 7264

if

(!(rv = sqlite3_open(szdbname, &db)))  

}  sqlite3的insert語句由於要插入數值,一般使用萬用字元'?',然後將每個問號和資料一一繫結。

如上例中,我們可以用

[cpp]view plain

copy

print?

insert into problem_people values(?,%d,?,?,?,null,null);"  

代替sprintf函式,而後使用sqlite3_bind_text等函式進行對應的繫結。

在原例中,由於插入資料為字串,該欄位需要用單引號括起,而在萬用字元例子中無需使用單引號。

值得注意的是,當字串為數字時,sql語句會自動轉換數字為字串,也無需使用單引號。

如果你應該使用單引號,而沒有寫上去,sqlite會告訴你sqlite3_misuse的錯誤。這說明sql語句有誤。

還有最後乙個問題。在原例中,我並沒有將第乙個問號匹配,這是因為sqlite中有一項預設規定,只要integer欄位作為主鍵,插入時將其設為?就能做到自增,這是一項挺方便的設定。

SQLITE3中INSERT語句的注意事項

if rv sqlite3 open szdbname,db sqlite3的insert語句由於要插入數值,一般使用萬用字元 然後將每個問號和資料一一繫結。如上例中,我們可以用 insert into problem people values d,null,null 代替sprintf函式,而後...

使用sqlite3 模組操作sqlite3資料庫

python內建了sqlite3模組,可以操作流行的嵌入式資料庫sqlite3。如果看了我前面的使用 pymysql 操作mysql資料庫這篇文章就更簡單了。因為它們都遵循pep 249,所以操作方法幾乎相同。廢話就不多說了,直接看 吧。都差不多,首先匯入模組,然後建立連線,然後獲取游標物件,之後利...

SQLite3中TimeStamp的使用問題

color blue 在使用sqlite3時使用了timestamp,但是遇到一些問題,現總結如下 一 我的sql語句 create table logs id integer primary key,idcardno varchar 50 createdtime timestamp not nul...