所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

ASP使用MySQL数据库超详细教程 从连接到增删改查新手一看就会

ASP使用MySQL数据库超详细教程 从连接到增删改查新手一看就会 一

文章目录CloseOpen

第一步:先把ASP和MySQL的“桥”搭好——驱动安装与连接配置

ASP要连MySQL,得先装个“翻译官”——MySQL ODBC驱动。因为ASP默认用ODBC(开放式数据库连接)协议和数据库通信,而MySQL本身不自带ASP的驱动,所以得手动装这个“翻译官”。

我帮奶茶店装驱动时,一开始图省事下了个32位的MySQL Connector/ODBC 8.0,结果服务器是Windows Server 2019 64位,安装完后ODBC数据源管理器里根本找不到驱动——后来才知道,驱动版本得和系统位数一致!你直接去MySQL官网(https://dev.mysql.com/downloads/connector/odbc/)下,选“Windows (x86, 64-bit), MSI Installer”,下完双击安装。安装时别一路点“Next”,记得选“Complete”安装(或者在“Custom”里勾上“Include all subcomponents”)——我之前帮朋友装的时候没勾这个,导致驱动没装全,ASP一直提示“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序”,后来重新装才解决。

装完驱动,得配置ODBC数据源——这是ASP和MySQL之间的“中间人”。你打开“ODBC数据源管理器”(Win10/11直接搜“ODBC”就能找到),点“系统DSN”标签(选系统DSN是因为ASP运行在服务器端,用户DSN可能找不到),再点“添加”,选“MySQL ODBC 8.0 Driver”,然后填这几项:

  • Data Source Name:随便起个好记的名字(比如“ASP_MySQL_Noodle”);
  • TCP/IP Server:填MySQL服务器地址(本地的话就是“localhost”,远程的话填IP);
  • User:MySQL用户名(比如“root”);
  • Password:MySQL密码;
  • Database:选你要连的数据库(比如奶茶店的“noodle_shop”)。
  • 填完点“Test”,如果提示“Connection successful”,说明桥搭好了!

    接下来是连接字符串配置——这一步是让ASP知道“怎么过桥”。连接字符串其实就是一串“指令”,告诉ASP用哪个驱动、连哪个服务器、进哪个数据库。比如奶茶店的连接字符串是这样的:

    Driver={MySQL ODBC 8.0 Driver};Server=localhost;Database=noodle_shop;Uid=root;Pwd=123456;

    我给你拆解开讲:

  • Driver={MySQL ODBC 8.0 Driver}:指定用刚才装的MySQL ODBC 8.0驱动;
  • Server=localhost:MySQL服务器在本地;
  • Database=noodle_shop:要连接的数据库是“noodle_shop”;
  • Uid=root:MySQL用户名是“root”;
  • Pwd=123456:MySQL密码是“123456”。
  • 你把这些参数换成自己的就行。这里有个小技巧:如果连接失败,先去ODBC数据源管理器里“测试连接”——如果测试通了,说明驱动和数据源没问题,大概率是连接字符串写错了(比如密码多打了个空格);如果测试不通,就检查MySQL服务有没有启动、用户名密码对不对。我之前帮奶茶店排错时,就是用这个方法快速定位问题的,特别好用。

    第二步:实战!ASP操作MySQL的增删改查全流程

    桥搭好后,就能用ASP“指挥”MySQL干活了——增(插入数据)、删(删除数据)、改(更新数据)、查(查询数据),这四个操作是ASP和MySQL交互的核心。我用奶茶店的“订单表”(表名orders,字段:order_id(订单ID,主键自增)、customer_name(客户名)、drink_type(饮品类型)、price(价格)、create_time(下单时间))举例子,你跟着做就行。

  • 增:往MySQL里插数据(比如新增订单)
  • 插入数据就是把用户提交的信息(比如客户名、饮品类型)存到MySQL里。比如奶茶店客户“李四”点了一杯“芋圆奶茶”,价格18元,ASP代码要这么写:

    <%
    

    '

  • 创建连接对象(相当于“桥票”)
  • Set conn = Server.CreateObject("ADODB.Connection")

    '

  • 打开连接(过桥)
  • conn.Open "Driver={MySQL ODBC 8.0 Driver};Server=localhost;Database=noodle_shop;Uid=root;Pwd=123456;"

    '

  • 写SQL插入语句(告诉MySQL要存什么数据)
  • sql = "INSERT INTO orders (customer_name, drink_type, price, create_time) VALUES ('李四', '芋圆奶茶', 18, NOW())"

    '

  • 执行SQL(让MySQL干活)
  • conn.Execute sql

    '

  • 关闭连接(过桥后要还票)
  • conn.Close

    Set conn = Nothing

    Response.Write "订单提交成功!"

    %>

    我之前写这个的时候,没写conn.Execute sql——以为创建连接就完事了,结果数据没插进去,后来才明白:必须用Execute方法执行SQL语句! 如果你想获取插入后的订单ID(比如生成订单编号),可以用INSERT ... SELECT LAST_INSERT_ID()

    sql = "INSERT INTO orders (customer_name, drink_type, price) VALUES ('李四', '芋圆奶茶', 18); SELECT LAST_INSERT_ID()"
    

    Set rs = conn.Execute(sql)

    order_id = rs(0) ' 拿到刚插入的订单ID

    Response.Write "你的订单编号是:" & order_id

    这个技巧我帮奶茶店做订单溯源时常用,特别实用。

  • 查:从MySQL里拿数据(比如显示订单列表)
  • 查询数据就是把MySQL里的信息“拿出来”给用户看。比如要显示所有“芋圆奶茶”的订单,代码是这样的:

    <%
    

    Set conn = Server.CreateObject("ADODB.Connection")

    conn.Open "Driver={MySQL ODBC 8.0 Driver};Server=localhost;Database=noodle_shop;Uid=root;Pwd=123456;"

    ' 写SQL查询语句(要查什么数据)

    sql = "SELECT FROM orders WHERE drink_type = '芋圆奶茶' ORDER BY create_time DESC"

    ' 创建记录集对象(相当于“装数据的篮子”)

    Set rs = Server.CreateObject("ADODB.Recordset")

    ' 打开记录集(把数据装进篮子)

    rs.Open sql, conn, 1, 1 ' 后面两个参数是游标类型和锁类型,不用记,用1,1就行

    %>

    芋圆奶茶订单列表

    订单ID 客户名 价格 下单时间

    我之前做奶茶店订单列表时,没加Do While Not rs.EOF——结果只显示一条数据,后来加了循环才显示所有订单。记住:查询数据一定要用循环遍历记录集,不然只能拿到第一条!

  • 改:修改MySQL里的数据(比如调整订单价格)
  • 更新数据就是修改已有的记录。比如李四的芋圆奶茶加了份小料,价格要改成20元,代码是:

    <%
    

    Set conn = Server.CreateObject("ADODB.Connection")

    conn.Open "Driver={MySQL ODBC 8.0 Driver};Server=localhost;Database=noodle_shop;Uid=root;Pwd=123456;"

    ' 写SQL更新语句(要改什么)

    sql = "UPDATE orders SET price = 20 WHERE customer_name = '李四' AND drink_type = '芋圆奶茶'"

    conn.Execute sql

    conn.Close

    Set conn = Nothing

    Response.Write "价格调整成功!"

    %>

    这里要注意:WHERE条件一定要写清楚!我之前帮朋友改数据时,没写WHERE customer_name = '李四'——结果把所有芋圆奶茶的价格都改成20了,幸好有备份,不然就麻烦大了。

  • 删:删除MySQL里的数据(比如删除测试订单)
  • 删除数据就是把不需要的记录删掉。比如要删李四的测试订单,代码是:

    <%
    

    Set conn = Server.CreateObject("ADODB.Connection")

    conn.Open "Driver={MySQL ODBC 8.0 Driver};Server=localhost;Database=noodle_shop;Uid=root;Pwd=123456;"

    ' 写SQL删除语句(要删什么)

    sql = "DELETE FROM orders WHERE customer_name = '李四' AND drink_type = '芋圆奶茶' AND price = 20"

    conn.Execute sql

    conn.Close

    Set conn = Nothing

    Response.Write "测试订单已删除!"

    %>

    WHERE条件不能少——我之前删测试数据时,没写条件,把整个表的订单都删了,后来重新导数据才恢复,这个教训我记到现在!

    为了方便你对照,我把增删改查的常用操作做成了表格:

    操作类型 SQL语句示例 ASP代码关键步骤
    插入数据 INSERT INTO orders (customer_name, drink_type, price) VALUES (‘李四’, ‘芋圆奶茶’, 18)
  • 创建连接对象;
  • 打开连接;3. 写SQL;4. 执行conn.Execute sql;5. 关闭连接。
  • 查询数据 SELECT FROM orders WHERE drink_type = ‘芋圆奶茶’
  • 创建连接+记录集对象;
  • 打开记录集(rs.Open sql, conn, 1, 1);3. 循环读取(Do While Not rs.EOF);4. 关闭对象。
  • 更新数据 UPDATE orders SET price = 20 WHERE customer_name = ‘李四’ 同“插入数据”,重点是写对WHERE条件。
    删除数据 DELETE FROM orders WHERE customer_name = ‘李四’ 同“插入数据”,WHERE条件必须精准。

    怎么样?这些步骤是不是比你想象的简单?我帮奶茶店做系统时,就是按这些步骤来的,从驱动安装到订单管理,用了不到一天就做出来了,老板还夸我做得快。你要是按这些方法试了,不管成功还是遇到问题,都欢迎回来留言告诉我——比如你连接失败了,把错误提示贴出来,我帮你看看;要是成功了,也让我沾沾你的喜气!

    对了,忘了说,ASP里操作MySQL一定要注意安全——别直接把用户输入的内容拼到SQL里(比如sql = "INSERT INTO orders VALUES ('" & Request.Form("name") & "', ...)"),会被SQL注入!下次我再教你怎么用参数化查询防注入,这次先把基础打牢~


    装了MySQL ODBC驱动,为什么ODBC数据源管理器里找不到?

    大概率是驱动版本和系统位数不匹配,比如你系统是64位却装了32位驱动,得去MySQL官网下对应位数的驱动,选“Windows (x86, 64-bit), MSI Installer”版本。另外安装时要选“Complete”或者勾上“Include all subcomponents”,我之前帮朋友装没勾这个,驱动没装全也会找不到。

    ASP连接MySQL时提示“未发现数据源名称”,怎么解决?

    先检查ODBC数据源配置,确保“系统DSN”里有你建的数据源,而且驱动选对了MySQL ODBC版本。再看连接字符串,是不是把“Driver={MySQL ODBC 8.0 Driver}”写错了,或者“Database”拼成“DB”这种小错误——我之前就犯过这错,改过来就好了。

    ASP写了插入数据的代码,为什么MySQL里没数据?

    首先得确认有没有用conn.Execute执行SQL语句,我一开始以为创建连接就完事了,没写这句,结果数据根本没插进去。另外要检查连接有没有打开,比如conn.Open是不是写对了,还有SQL语句里的字段名、表名有没有拼错——比如把“orders”写成“order”,也会插不进。

    ASP查询MySQL数据,为什么只显示一条?

    因为没循环读取记录集!查询数据得用Do While Not rs.EOF循环把每条数据读出来,还要加rs.MoveNext跳到下一条。我之前帮奶茶店做订单列表时,没加循环,结果只显示第一条,加了循环就全出来了。

    配置ODBC数据源时,测试连接失败怎么办?

    先检查MySQL服务有没有启动,比如Windows下搜“服务”,看“MySQL”是不是正在运行。再核对用户名和密码,是不是输错了——比如root密码多打了个空格。还有服务器地址,本地的话要写“localhost”,远程的话得填正确IP,别填成“127.0.0.1”却没开远程访问。

    原文链接:https://www.mayiym.com/54840.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码