经典 ASP 时代每个页面都要写一遍连接数据库的样板代码,容易重复也容易漏关连接。把连接与查询封装成公共函数后,业务页面只需传一条 SQL,代码立刻清爽很多。

实现思路

用 ADODB.Connection 建立连接并赋值给全局变量;QueryRs 负责执行只读游标查询并返回记录集;ShowList 内部负责遍历输出与对象释放,调用方无需关心资源回收。

完整代码

<%@ Language="VBScript" CodePage=65001 %>
<%
Option Explicit
Rem 连接串按你的数据库环境修改
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Database=mydb;Uid=root;Pwd=123456;"

Function QueryRs(sql)
    Dim rs
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 1, 1
    Set QueryRs = rs
End Function

Sub ShowList(sql)
    Dim rs
    Set rs = QueryRs(sql)
    Do While Not rs.EOF
        Response.Write "<li>" & Server.HTMLEncode(rs("title")) & "</li>"
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
End Sub

ShowList "SELECT title FROM news ORDER BY id DESC LIMIT 10"

conn.Close
Set conn = Nothing
%>

要点说明

  • 每页用完务必 Close 并把对象置 Nothing,避免连接池耗尽;
  • 输出前用 Server.HTMLEncode 转义,防止标题中的引号与尖括号破坏页面;
  • 查询串里不要直接拼接用户输入,过滤后再进 SQL。

小结

公共连接模块是经典 ASP 的最佳实践之一,页面只关注业务 SQL,遇到数据库迁移也只需改一个文件。