asp mysql语法_ASP 连接 MySQL 数据库两种方法

一般都是用myodbc来连接。首先,在系统中安装 Mysql 的ODBC数据库驱动。如安装稳定版本是3.51.下载地址是:http://dev.mysql.com/downloads/connector/odbc/3.51.html。

下载安装好后。在控制面板-->管理工具-->数据源 (ODBC)中的“驱动程序”页中如果有MySQL ODBC 3.51 Driver就说明驱动已经安装成功,就可以开始写程序了。

下面是我测试时使用的程序,里面有说明就不再介绍了。

方法一:

‘各个变量说明:‘ myHost:MySql数据库地址

‘myDB:使用的MySql数据库名‘ myUID:连接MySql数据库使用的帐号

‘myPWD:连接MySql数据使用帐号的密码‘ myChareSet:客户端使用的编码类型。根据实际情况使用。

‘一般情况下使用gb2312 utf8 gbk这三种编码。如果这三种都测试过仍然有乱码。‘ 请检查你的设置。

‘数据库设置开始dim myHost,myDB,myUID,myPWD

myHost ="localhost"myDB ="knowldge"myUID ="root"myPWD ="mysqladmin"myChareSet ="gb2312"strconnection="driver={mysql odbc 3.51 driver};server="&myHost &";database="&myDB &";user name="&myUID &";password="&myPWD

setconn =server.createobject("adodb.connection")‘连接数据库

conn.open strconnection

‘设置客户端字符编码conn.execute("set names ‘"&myChareSet &"‘")‘不加此语句汉字部分可能会出现???乱码

‘数据库设置结束%>

或:

setconn =server.createobject("adodb.connection")Conn.Open"DRIVER={MySQL ODBC 3.51 Driver};SERVER=127.0.0.1;DATABASE=Shops;USER=root;PASSWORD=xxx;"

上面是使用ADODB的连接方法,在默认3306端口是正常。

但在端口改成3333了,就出错。

SERVER=127.0.0.1:3333; 这样也不对,在PHP这样是可以用的

SERVER=127.0.0.1,3333; MSSQL是这样改端口,但在这是错的。

这样可能可以:

Conn.Open"DRIVER={MySQL ODBC 3.51 Driver};SERVER=127.0.0.1;PORT=3333;DATABASE=Shops;USER=root;PASSWORD=xxx;"

方法二:

另外还可以先在ODBC数据源里新建一个系统DSN,选择  MySQL  ODBC  3.51  Driver作为数据源,填入相关的用户名和密码并测试之。相关的ASP连接代码如下:

strconnection="dsn=dbdsn;driver={mysql odbc 3.51 driver};uid=dbuser;password=dbpwd"‘dsn:新建的DSN名称

‘uid:用户名‘password:密码

set con = server.createobject("adodb.connection")

con.open strconnection

需要注意的问题(mysql4.1及以上版本)

mysql4.1及以上版本对字符集的限定跟之前的版本有很大不同,在进行数据库查询的时候如果不对字符集加以设定,一旦有查询的字段有中文,便很可能出现下面这样的错误:

Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80040e31’

[MySQL][ODBC 3.51 Driver][mysqld-4.1.18]Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation ‘=’

这个时候就需要对asp的查询语句进行一些修改,增加有关的字符集的设定:

"select email from members where username=_gbk ‘"&username&"‘ COLLATE gbk_chinese_ci"

代码示例解释如下:如使用下面代码链接

示例1:

Conn.Open"DRIVER={MySQL ODBC 3.51 Driver};SERVER="&strIP &";DATABASE="&strDBName &";USER="&strUserName &";PASSWORD="&strPass &";OPTION=3;"

如果MyODBC版本不同,请自行修改Driver中的字符串

driver={mysql odbc 3.51 driver};

server=填入服务器地址;uid=用户名;pwd=密码;database=mm"‘连接字符串,dsn就是我们设置的数据源标识符

注意driver我们刚才在设置系统DSN的时候提过。

set conn = server.createobject("adodb.connection")

conn.open strconnection

sql = "select * from my" ‘SQL查询语句setrs =conn.execute(sql)ifnotrs.bof then%>

示例2:

strconnection="driver={mysql odbc 3.51 driver};database=weste_net;server=localhost;uid=root;password="

‘无需配置dsn

setadodataconn =server.createobject("adodb.connection")adodataconn.open strconnection

strquery ="select * from News"setrs =adodataconn.execute(strquery)ifnotrs.bof then%>

序列号标题

%>

loop

%>

adodataconn.close

setadodataconn =nothing

setrsemaildata =nothing

%>

示例3:

myChareSet ="gb2312"sConnString="driver={mysql odbc 3.51 driver};database=portaldata;server=localhost;uid=root;password=123456"SetConn=Server.CreateObject("adodb.Connection")Conn.open sConnString

conn.execute("set names ‘"&myChareSet &"‘")‘不加上面语句汉字部分可能会出现???乱码

%>

if not rs.bof then

%>

%>

编号标题

Loop%>

Setrs=NothingConn.CloseSetConn=Nothing%>

注意:若使用上面代码出现如下错误

错误类型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21) ODBC 驱动程序不支持所需的属性。

则可能是MySql中不支持select top 10 *……,不支持top 10的语法

原文:http://www.cnblogs.com/Gbeniot/p/3831531.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值