本文介绍了在IE浏览器环境下,JavaScript通过ActiveXObject和ODBC连接MySQL的具体实现,以及PHP通过ODBC连接数据库的方法。详细说明了32位与64位VC库与ODBC源的一致性配置要求,以及用户DSN与系统DSN的使用场景,并提供了完整的JS与PHP代码示例供参考。
JavaScript与PHP通过ODBC连接数据库概述
尝试使用JavaScript直接连接MySQL数据库,经过两小时的调试终于成功。在此过程中使用了ODBC技术,随后又探索了通过PHP连接ODBC进而访问数据库的方案,同样实现了连接,现将相关案例分享如下。
连接数据库的关键注意事项
实施过程中需注意以下关键事项:
首先,JavaScript连接MySQL依赖于“new ActiveXObject”对象,该对象仅IE浏览器支持,因此此方案仅限于在IE浏览器环境中执行。
其次,JavaScript与PHP均通过ODBC连接MySQL,但两者在参数设置上存在差异。如参考图片所示,红色标注部分代表PHP连接的数据源名称,而蓝色标注部分代表JavaScript连接的数据源名称,此处极易产生混淆,需仔细区分。

第三,下载和配置ODBC源时,必须确保VC库的版本位数与ODBC安装文件的位数一致:32位数据源需对应32位或X86架构的VC库,64位数据源则需对应64位VC库。此外,ODBC数据源管理程序的位置较难查找,可通过两种途径获取:一是打开控制面板搜索“odbc”,选择对应版本的控制器进行配置;二是在Windows系统目录中,于system32文件夹下搜索“odbcad32.exe”可找到64位版本,而在syswow64文件夹下搜索“odbcad32.exe”则可找到32位版本。

第四,若为个人本地使用,配置用户DSN即可满足需求;若涉及多人使用或网络共享场景,则应配置系统DSN。
JavaScript与PHP代码实现示例
具体代码实现如下:
JavaScript版本代码
<script>
//创建数据库连接对象
var conn = new ActiveXObject("ADODB.Connection");
//创建数据集对象
var rs = new ActiveXObject("ADODB.Recordset");
try{
//数据库连接串,具体配置请参考:http://www.connectionstrings.com/
//如果不知道如何配置连接串,可以通过配置UDL文件后用文本编辑器打开获得
//Driver={这里是图片蓝色框体的驱动程序名,而不是自定义的名称,注意}
var connectionstring = "Driver={MySQL ODBC 5.3 ANSI Driver};Server=127.0.0.1;User=root;Password=root;Database=suning;Option=3;Port=3306";
console.log(connectionstring);
//打开连接
conn.open(connectionstring);
//查询语句
var sql = " select * from su_ceshi ";
//打开数据集(即执行查询语句)
rs.open(sql,conn);
//(或者rs=conn.execute(sql);)
//遍历所有记录
while(!rs.eof){
//WScript是Windows 的脚本宿主对象,详细情况请在windows帮助里查找。
//WScript.Echo输出记录的内容
document.write(rs.Fields("id") + "\t" + rs.Fields("xueke") + "\n");
//下一条记录
rs.moveNext();
}
//关闭记录集
rs.close();
//关闭数据库连接
conn.close();
} catch(e){
//异常报告
document.write(e.message);
} finally{
//
}
</script>
PHP版本代码
<html>
<body>
<?php
//第一个参数是图片红色框体的自定义名称。注意
$conn=odbc_connect('mysqlodbc','root','root');
if (!$conn)
{
exit("连接失败: " . $conn);
}
$sql="SELECT * FROM su_ceshi";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{
exit("SQL 语句错误");
}
echo "<table><tr>";
echo "<th>id</th>";
echo "<th>xueke</th></tr>";
while (odbc_fetch_row($rs))
{
$compname=odbc_result($rs,"id");
$conname=odbc_result($rs,"xueke");
echo "<tr><td>$compname</td>";
echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
</body>
</html>
上述内容即为JavaScript连接MySQL以及PHP通过ODBC连接任意数据库的完整实例,希望能为读者提供有效的参考与帮助,同时也欢迎大家继续支持本站获取更多技术分享。