首先,在系統中安裝Mysql 的ODBC資料庫驅動。當前的穩定版本是3.51.是:http://dev.mysql.com/downloads/connector/odbc/3.51.html。下載安裝好後。在控制台-->管理工具-->資料來源 (ODBC)中的驅動程式頁中如果有MySQL ODBC 3.51 Driver就說明驅動已經安裝成功,就可以開始寫程式了。
下面是我測試時使用的程式,裡面有說明就不再介紹了。
<%
'設定MySql串連屬性
'各個變數說明:
' 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
set conn = server.createobject("adodb.connection")
'串連資料庫
conn.open strconnection
'設定用戶端字元編碼
conn.execute("set names '" & myChareSet & "'")
'資料庫設定結束
%>
或:
set conn = 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;"
-------------------------------------------------------------------------------------------------------------------------------------------------
一般情況下,使用asp的時候很少會用到mysql資料庫,但有的時候就必須串連mysql,比如kaoyan.com因為論壇使用的是mysql的資料庫,而其他一些頻道是基於asp建立,所以涉及使用者身分識別驗證的時候,就經常需要用到asp來串連mysql。
1、asp串連mysql的基本方式
一般都是用myodbc來串連。首先需要安裝MyODBC,可以到http://www.mysql.com/下載。
安裝好MyODBC之後,可以直接在asp代碼裡面通過以下語句來串連mysql資料庫:
strconnection=”driver={mysql odbc 3.51 driver};
database=dbname;server=localhost;uid=dbuser;password=dbpwd”
‘database:資料庫名
’server:伺服器名/ip
‘uid:使用者名稱
‘password:密碼
set con = server.createobject(”adodb.connection”)
con.open strconnection
另外還可以先在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
2、需要注意的問題(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“---------------------------------------------------------------------------------------------------------------------------------------------
、到mysql網站:http://dev.mysql.com/downloads/下載MySQL ODBC 3.51 Driver安裝
2、使用如下代碼連結
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & strIP & ";DATABASE=" & strDBName & ";USER=" &
strUserName & ";PASSWORD=" & strPass & ";OPTION=3;"
如果MyODBC版本不同,請自行修改Driver中的字串
<%
strconnection="dsn=mysqltest;
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查詢語句
set rs = conn.execute(sql)
if not rs.bof then
%>