根据多个条件参数化查询一个字段值的ASP数据库操作函数


关键词

参数化查询 多个字段 查询字段 ASP函数

摘要

本文介绍一个ASP操作数据库的函数,它可以直接通过多个条件参数化查询一个字段的值。因为是参数化查询,所以这个函数很安全,不会有SQL注入。

这个ASP操作数据库的具体内容如下:

'获取数据库信息,1个结果字段,N个条件
Function GetDbData1N(tbName,col,whereState,whereArray)
    GetDbData1N = ""    
    Dim connT,cmdT,rsT,i
    Set connT=Server.CreateObject("ADODB.Connection")
    Set cmdT=Server.CreateObject("ADODB.Command")
    connT.open dbstr
    With cmdT    
    Set .ActiveConnection = connT
    .CommandType = 1
    .CommandText = "select top 1 " & col & " from " & tbName & " where 1=1 " & whereState
    'response.write UBound(whereArray,1) & "--" & UBound(whereArray,2) & "--"
    'Response.write whereState
    'Response.write IsNull(whereArray)  & "--" & IsEmpty(whereArray)  & "--" & isarray(whereArray) & "--"
    If Not IsEmpty(whereArray) Then
        For i=1 To UBound(whereArray)
            If whereArray(i,2) = "int" Then
                .Parameters.Append .CreateParameter(whereArray(i,1),3,1,4,whereArray(i,3))
            Else
                .Parameters.Append .CreateParameter(whereArray(i,1),200,1,128,whereArray(i,3))
            End If
        Next
    End If
    set rsT=.Execute()
    End With
    Set cmdT.ActiveConnection = Nothing
    set cmdT=nothing
    If Not rsT.eof then GetDbData1N=rsT(col)
    rsT.close
    connT.close
End Function

解释一下GetDbData1N这几个参数的含义:
tbName:数据库表名
col:要查询的字段名
whereState:条件语句,函数中在Where之后默认已经加了1=1的条件,所以whereState里面直接使用 “and 字段1=值1 and 字段2=值2”的格式即可。
whereArray:条件的值,以一个数组的形式传递值,这是一个二维数组,第一维表示参数的个数,第二维有三个值,分别表示参数名,参数类型,参数值。

函数的返回值
函数的返回值字段串类型的,即要查询的值。

使用举例:
如果有一个用户表(表名为tb_user),有user_id、user_name、user_right、user_1、user_2等多个字段。这时我想通过user_1、user_2来获取user_name,可以怎么通过这个asp数据库操作函数来实现呢?


'--------------调用示例-------------------------
'
'Dim whereState : whereState = ""
'ReDim whereArray(0,3)
'Dim whereCount : whereCount = 0
'
'If user_1<>"" Then
'    whereCount = whereCount + 1
'    whereState= whereState & " and user_1=?"
'    ReDim Preserve whereArray(whereCount,3)
'    whereArray(whereCount,1) = "user_1" : whereArray(whereCount,2) = "varchar" : whereArray(whereCount,3) = user_1
'End If
'If user_2<>"" Then
'    whereCount = whereCount + 1
'    whereState= whereState & " and user_2=?"
'    ReDim Preserve whereArray(whereCount,3)
'    whereArray(whereCount,1) = "user_2" : whereArray(whereCount,2) = "varchar" : whereArray(whereCount,3) = user_2
'End If
user_name = GetDbData1N("tb_user","user_name",whereState,whereArray)

关于根据多个条件参数化查询一个字段值的ASP数据库操作函数,本文就介绍这么多,希望对您有所帮助,谢谢!

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« 根据主键参数化查询多个字段值的ASP数据库操作函数 根据多个条件参数化查询一个记录集的ASP数据库操作函数 »

相关文章: