在Windows上安装PHP PDO(xampp)

10

我正在尝试开发一个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,并使用xampp安装的dll重启Apache服务器后,服务器无法启动。尝试使用PDO_OCI [Oracle(PDO)])

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

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


更新

刚刚成功地使用PDO_OCI连接了Oracle。你需要做到以下几点:

下载并安装Windows机器上适当的Oracle Instant Client,例如instantclient_12_1,并将其路径添加到SYSTEM环境变量中的PATH中。请注意,Oracle仅支持两个版本,因此请正确选择客户端版本。完成此操作后重新启动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);  

更新

我刚刚使用PDO_ODBC成功连接了Sybase。您需要的是以下内容:

必须安装带有 SDK 的 Sybase ASE ODBC 驱动程序。以下是连接字符串:

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

请问您想尽可能连接不同的数据库,这是出于什么原因? - Your Common Sense
当然,我正在尝试从不同的系统中收集信息,以便在一个地方显示。有点像一个门户网站,用于监视错误表和一些统计数据。 - Constantinos
我在帖子中更新了与Oracle和PDO_OCI连接的解决方案。如果有人对Sybase也有解决方案,请告诉我们。 - Constantinos
已更新我的帖子,附上连接Sybase的解决方案。使用了PDO_ODBC。 - Constantinos
1个回答

3

我终于成功连接了四个数据库,以下是我成功的方法:


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

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

我使用PDO_SQLSRV连接 Microsoft SQL Server,并按照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 Environmental Variables中的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);  

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接