在windows上安装PHP PDO(examplep)


PHP PDO installation on windows (xampp)

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

请注意,我在Windows7机器上使用examplep。PHP版本5.3.8。PDO驱动程序启用了mysql、odbc、sqlite、sqlite2、sqlsrv。

我已成功连接到以下设备:

  • MySQL使用PDO_MySQL[MMySQL(PDO)](默认情况下,扩展似乎安装在xampp上)
  • Microsoft SQL Server使用PDO_SQLSRV[MS SQL Server(PDO)](遵循http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/)

我没有运气安装或连接:

  • (已解决,请参阅以下更新)Sybase(我尝试使用并安装PDO_DBLIB[MS SQL Server(PDO)],但没有成功)
  • (已解决,请参阅以下更新)Oracle(我试图在php.ini中启用扩展名=php_pdo_oci.dll,该扩展名是在重新启动Apache后随examplep一起安装的dll,但服务器无法启动。我试图使用pdo_oci[Oracle(pdo)])

我知道我可以使用数据库特定的驱动程序来解决这2个问题,但我真的很想使用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);  

所以我终于连接到了四个数据库,下面是我的管理方式:


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 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);