明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

把數(shù)據(jù)插入到數(shù)據(jù)庫(kù)的2種方法

[摘要]把表單中的數(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í)慣