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.
我已成功连接以下内容:
我没有安装或连接的运气:
我知道我可以使用数据库特定的驱动程序解决这两个问题,但我真的很想将PDO用于我需要的一切.
有谁知道如何安装和启用PDO_DBLIB和PDO_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)
所以我终于成功连接到四个数据库,这是我的管理方式:
使用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)
Oracle与PDO_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)