如何在windows系统的ODBC数据源管理器中配置数据源。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在windows系统的ODBC数据源管理器中配置数据源。相关的知识,希望对你有一定的参考价值。
参考技术A 开始->控制面板->性能和维护->管理工具->数据源(ODBC)->双击显示内容->系统DSN->添加->选择你要添加的数据库驱动->下一步->下一步->添加用户名和密码即可。PDO 找不到 ODBC 驱动程序
【中文标题】PDO 找不到 ODBC 驱动程序【英文标题】:PDO cannot find ODBC driver 【发布时间】:2014-07-23 07:15:00 【问题描述】:尝试迁移到 PDO 以通过 ODBC 连接到远程数据库。
我的系统是 Windows 7 Pro,通过 FortiClient *** 连接到远程域,并连接了隧道模式。 (在编辑中添加: 运行 PHP 5.4,所以应该默认安装 PDO。)
Windows 7 ODBC 数据源管理器中的数据源配置如下(为安全起见,部分名称已更改):
在 系统 DSN 下: 系统数据源名称 = 'TheBigDB' 驱动程序 = 'instantclient_11_2 中的 Oracle' (64 位) TNS 服务名称 = '10.10.1.20:1521/BIGDB' 用户 ID = 'BigDBUser' 所有其他设置都是安装驱动程序的默认设置以下 PHP 非 PDO 代码能够创建可用于查询的连接:
if (!($myConn = odbc_connect('TheBigDB','BigDBUser','myPwd')))
echo "No ODBC connection<br />";
这样我就可以连接到数据库了。问题是在 PDO 中执行此操作。以下 PHP...
try
$odbcConn = new PDO('odbc:Driver=Oracle in instantclient_11_2;Server=10.10.1.20:1521;Database=BIGDB;Uid=BigDBUser;Pwd=myPwd');
catch (PDOException $e)
echo 'PDO connection failed: ' . $e->getMessage();
... 导致 PDO 连接失败:找不到驱动程序 消息。我的第一次尝试更多地依赖于数据源管理员。看起来像这样:
try
$odbcConn = new PDO('MyBigDB','BigDBUser','myPwd');
catch (PDOException $e)
echo 'PDO connection failed: ' . $e->getMessage();
同样的事情——找不到驱动程序。
所以这是我的问题:给定一个带有 ODBC 的 Windows 7 系统,通过 *** 连接到一个 Oracle 数据库,似乎在没有 PDO 的情况下一切正常,我如何迁移连接参数以创建 PDO 连接? 也许一个更好的问题是为什么要使用 PDO 进行连接,但我一直在读到 PDO 更安全,所以我正在尝试使用它。
【问题讨论】:
【参考方案1】:更多挖掘让我得到了答案。 创建使用 Windows 数据源 ODCB 连接的 PDO 对象的正确语法不是我展示的,而是这个(减去 try/catch):
$myConn = new PDO('odbc:TheBigDB','BigDBUser','myPwd');
但是...对于 PHP 5.4.12 使用 ODBC 来访问 Oracle 11 DB,您需要编辑正确的 php.ini 文件(请参阅 this WampServer forum topic 以讨论三个中的哪一个php.ini 文件,您需要编辑)。在 Dynamic Extensions 下,取消注释 extension=php_pdo_odbc.dll
和 extension=php_pdo_oci.dll
(我都做了;不确定是哪一个成功了...)
另一个提示:在我的脚本中,odbc_connect()
和 PDO()
都不适合我,除非我的连接是在 System DSN 选项卡下的 Windows 数据源管理员 中创建的.它在 User DSN 下不起作用。
【讨论】:
以上是关于如何在windows系统的ODBC数据源管理器中配置数据源。的主要内容,如果未能解决你的问题,请参考以下文章
添加数据源,管理工具--数据源(ODBC),点击添加不显示该驱动