把數(shù)據(jù)插入到數(shù)據(jù)庫的2種方法
發(fā)表時間:2023-08-17 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]把表單中的數(shù)據(jù)插入到數(shù)據(jù)庫中有兩種方法。1.直接使用sql語句的 優(yōu)點:速度快,不耗資源 缺點:不能傳遞太長的字段內(nèi)容,字段比較多時不易排錯。 推薦有經(jīng)驗的編程者優(yōu)先考慮. ...
把表單中的數(shù)據(jù)插入到數(shù)據(jù)庫中有兩種方法。
1.直接使用sql語句的
優(yōu)點:速度快,不耗資源
缺點:不能傳遞太長的字段內(nèi)容,字段比較多時不易排錯。
推薦有經(jīng)驗的編程者優(yōu)先考慮.
具體操作:
假設(shè)表單中有以下字段:username,password,sex,age
對應(yīng)的,在程序中有username,password,sex,age已取通過request.form或request.querystring取到字段的值。
數(shù)據(jù)庫表user中有username,password,sex,age字段。其它age為數(shù)字字段.
已經(jīng)建立connection對象,并打開鏈接.
sql="insert into [user] (username,password,sex,age) value ('"&username&"','"&password&"','"&sex&"',"&age&")"
conn.execute(sql)
值得注意的是,如果username中含有“'”單引號,則會出錯,解決方法是把字符串函數(shù)先經(jīng)過處理.我常用的方法是建立一個sqlencode函數(shù)。
function sqlencode(str)
sqlencode="'"&replace(str,"'","''")&"'"
end function
這樣上面的sql 語名在可以簡化為sql="insert into [user] (username,password,sex,age) values ("&sqlencode(username)&","&sqlencode(password)&","&sqlencode(sex)&","&age&")"
多字段時注意前面列表中的字段名和 values后面的值的順序要注意一一對應(yīng)關(guān)系,如果該值為空,可以不填寫,但表示分隔的“,”號不能省略。
加入的字段為字符串字段時要注意給內(nèi)容前后加上"'"號。
另外,在表名user上面打上方括號是因為user表可能是一個系統(tǒng)表,打上方括號才不會和系統(tǒng)有沖突。給表名加上方括也是保證代碼的兼容性的一個良好習(xí)慣。
2.使用recordset對象
優(yōu)點:代碼容易閱讀,除錯
缺點:消耗系統(tǒng)資源
推薦新手使用
環(huán)境同上代碼如下:
set rs=Server.CreateObejct("ADODB.Recordset")
sql="select * from [user]
rs.open sql,conn,2,3
rs.addnew '注意這一行為新加入一個記錄,如果漏掉,就會改以前的記錄了。
rs("username")=username
rs("password")=password
rs("sex")=sex
rs("age")=age
rs.update '將更新寫入數(shù)據(jù)庫中
rs.close '最快的關(guān)閉recordset對象是一種良好的習(xí)慣
set rs=nothing '將不用的對象釋放也是一種良好的習(xí)慣