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