Windows上的PHP PDO安装(xampp)

Con*_*nos 10 php oracle sybase pdo

我正在尝试开发一个可以在PHP上连接到尽可能多的不同数据库的Web应用程序.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中启用扩展名= php_pdo_oci.dll,并在重启Apache后使用xampp安装的dll服务器无法启动.尝试使用PDO_OCI [Oracle(PDO)] )

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

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


UPDATE

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);  
Run Code Online (Sandbox Code Playgroud)

UPDATE

刚与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);  
Run Code Online (Sandbox Code Playgroud)

Con*_*nos 3

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


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

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

使用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);
Run Code Online (Sandbox Code Playgroud)

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);  
Run Code Online (Sandbox Code Playgroud)

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);  
Run Code Online (Sandbox Code Playgroud)