【问题标题】:PHP PDO installation on windows (xampp)Windows上的PHP PDO安装(xampp)
【发布时间】:2013-08-15 23:48:46
【问题描述】:

我正在尝试开发一个 Web 应用程序,它可以在 PHP 上连接到尽可能多的不同数据库。 PDO (http://www.php.net/manual/en/book.pdo.php) 似乎是它的正确接口,但我无法安装我需要的所有不同 PDO 数据库驱动程序所需的所有扩展。

请注意,我在 Windows 7 机器上使用 xampp。 PHP 版本 5.3.8。 PDO 驱动启用了 mysql、odbc、sqlite、sqlite2、sqlsrv。

我已成功连接以下:

我没有安装或连接:

  • (已解决请参阅以下更新)Sybase(我尝试使用和安装 PDO_DBLIB [MS SQL Server (PDO)],但没有成功)
  • (已解决请参阅下面的更新)Oracle(我尝试在 php.ini 中启用 extension=php_pdo_oci.dll 并使用在重新启动 Apache 后使用 xampp 安装的 dll,服务器无法启动。是尝试使用 PDO_OCI [Oracle (PDO)])

我知道我可以使用特定于数据库的驱动程序来解决这两个问题,但我真的很想将 PDO 用于我需要的一切。

有谁知道如何安装和启用 PDO_DBLIBPDO_OCI 驱动程序或 Windows 机器,或使用 PDO 连接 Sybase 和 Oracle 数据库的任何其他方式?


更新

刚刚使用 PDO_OCI 成功连接了 oracle。您需要做的是:

在您的 Windows 机器上下载并安装正确的 Oracle Instant Client 例如 instantclient_12_1 并将其路径添加到 SYSTEM 中的 PATH 环境变量。注意 Oracle 只支持向下 2 个版本所以选择 您的客户端版本正确。这样做,然后重新启动您的 Apache。请注意,连接字符串与这里有很大不同,这是我使用的示例:

$tns = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ".$myServer.")(PORT = 1521)))(CONNECT_DATA=(SID=".$myDB.")))"; 
$connStr = "oci:dbname=".$tns;      
$conn = new PDO($connStr,$myUser,$myPass);  

更新

刚刚与 Sybase 以及 PDO_ODBC 连接。您需要的是以下内容:

必须具有 SDK 附带的 Sybase ASE ODBC 驱动程序。在下面找到使用的连接字符串:

$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB;
$conn = new PDO($connStr,$myUser,$myPass);  

【问题讨论】:

  • 请问为什么你想连接尽可能多的不同数据库?
  • 当然,我正在尝试从不同系统收集信息以显示在一个地方。有点像监控错误表和一些统计信息的门户。
  • 用连接 oracle 和 PDO_OCI 的解决方案更新了我的帖子。如果有人也有 sybase 的解决方案,请告诉我们
  • 用与 Sybase 连接的解决方案更新了我的帖子。使用了 PDO_ODBC。

标签: php oracle pdo sybase


【解决方案1】:

所以我终于设法连接到四个数据库,这就是我的管理方式:


MySQL 使用 PDO_MYSQL 扩展似乎默认安装在 xampp 上,不需要做太多工作。这是我用于连接的代码:

$connStr = "mysql:host=".$myServer.";dbname=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass);  

Microsoft SQL Server 使用 PDO_SQLSRV 遵循http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/ 上的说明。这是我使用的代码:

$connStr = "sqlsrv:Server=".$myServer.";Database=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass);

OraclePDO_OCI。在您的 Windows 机器上下载并安装正确的 Oracle Instant Client,例如 instantclient_12_1,并将其路径添加到 SYSTEM 环境变量中的 PATH。注意 Oracle 仅支持 2 个版本,因此请正确选择您的客户端版本。这样做,然后重新启动您的 Apache。这是我使用的代码:

$tns = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ".$myServer.")(PORT = 1521)))(CONNECT_DATA=(SID=".$myDB.")))"; 
$connStr = "oci:dbname=".$tns;      
$conn = new PDO($connStr,$myUser,$myPass);  

SybasePDO_ODBC 必须具有 SDK 附带的 Sybase ASE ODBC 驱动程序。这是我使用的代码:

$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB;
$conn = new PDO($connStr,$myUser,$myPass);  

【讨论】:

    猜你喜欢
    • 2016-06-26
    • 1970-01-01
    • 2013-05-10
    • 2012-01-13
    • 2015-08-09
    相关资源
    最近更新 更多