Windows 上的 PHP PDO 安装(xampp)

标签 php oracle pdo sybase

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

Download and install the proper Oracle Instant Client on your windows machine for example instantclient_12_1 and add its path to PATH in SYSTEM Environmental Variables. Note Oracle supports only 2 versions down so select your client version properly. Do that and then restart your Apache. Note that the connection string is very different from here is a sample of what I used:

$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 连接。您需要的是:

Must have Sybase ASE ODBC Driver which comes with the SDK. Find below the connection string used:

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

最佳答案

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


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,并将其路径添加到系统环境变量中的 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 with PDO_ODBC 必须有 SDK 附带的 Sybase ASE ODBC 驱动程序。这是我使用的代码:

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

关于Windows 上的 PHP PDO 安装(xampp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18224729/

相关文章:

php - 自动保存表单字段

php - 在php中获取包含美元字符的PDO结果集

php - 使用 php 的 zip 文件 - 排除文件夹

php - 在 Yii2 中一次保存多个模型

c# - OracleBulkCopy 性能

java - 仅针对选定情况对 JDBC 连接进行多线程访问

php - 无效参数编号 : no parameters were bound

php - 如何跨多个类访问PDO连接对象?[php +Mysql]

javascript - PHP 多读少读 - Magento 2

oracle - 使用 Oracle to_date 函数获取带毫秒的日期字符串