Call Procedure for mysql in ASP

本文介绍如何在ASP中调用MySQL存储过程,并提供了一种防止SQL注入的方法。通过实例展示了如何设置变量并获取返回值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在搞 asp 和 mysql, 查了好多资料都找不到如何在asp中调用存储过程,测了半天,虽然免强可以用了,但是传出参数却发生问题。最后在mysql的论坛找到篇贴子,在这里整理一下,方便大家使用。

http://forums.mysql.com/read.php?98,82009,88532#msg-88532

set Conn=Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={MySQL ODBC 3.51 Driver};server=127.0.0.1;port=3307;uid=root;pwd=stephen;database=ctbsdb"
    set cmd = server.CreateObject("adodb.command")
    set cmd.ActiveConnection = conn
  ‘设置变量,返回的值要保存在这里
cmd.CommandText
= " set @szErr123 = 0; "
cmd.Execute()

cmd.CommandText
= " call sp_test(?,@szErr123); "   ‘?号的值为下面在Execute中传入的值,建议普通的sql语句也采用这种方式,可以防止sql注入攻击
set  rs  =  cmd.Execute(,ival)     ' 前面的" , "号是有的,不要去掉,不是笔误

while   not  rs.eof
 response.Write(
" <br> " )
 response.Write(rs(
0 ))
 rs.movenext
wend

’这里在外层套了一层select, 我返回的值是整形,原来输出的是?号,令人不解,所以套上这层就自动转换过了
cmd.CommandText
= " select * from (select @szErr123) AS tmp; "
set  rs2  =  cmd.Execute()

while   not  rs2.eof
 response.Write(
" <br> " )
 response.Write(rs2(
0 ))
 rs2.movenext
wend


希望此文能为大家稍解心结^^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值