2013-08-14 2 views
10

Я пытаюсь разработать веб-приложение, которое может подключаться к как можно большему количеству различных баз данных на PHP. PDO (http://www.php.net/manual/en/book.pdo.php) кажется правильным интерфейсом для него, но у меня возникли проблемы с установкой всех уровней, необходимых для всех различных драйверов базы данных PDO, которые мне нужны.Установка PHP PDO на windows (xampp)

Обратите внимание, что я использую xampp на машине Windows 7. PHP версия 5.3.8. Драйверы PDO включали mysql, odbc, sqlite, sqlite2, sqlsrv.

Я успешно подключился следующее:

  • MySQL используя Pdo_Mysql [MySQL (ПДО)] (расширение, казалось, должен быть установлен на 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_pdo_oci.dll в php.ini с dll, которая была установлена ​​с xampp после перезапуска Apache, сервер не смог запустить. Пытается использовать Pdo_Oci [Oracle (PDO)])

Я знаю, что могу работать вокруг этих 2 с использованием конкретных драйверов баз данных, но я бы очень хотелось, чтобы использовать PDO для всего того, что мне нужно.

Кто-нибудь знает, как установить и включить PDO_DBLIB и Pdo_Oci водителей или через окно машины, или любой другой способ соединения с базами данных Sybase и Oracle с использованием PDO?


UPDATE

Просто успешно связан с оракула с Pdo_Oci. Что вам нужно сделать, это следующее:

Скачать и установить соответствующий Oracle Instant Client на вашей машине окна для примера instantclient_12_1 и добавить свой путь к 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); 

UPDATE

Просто связано с Sybase, а с PDO_ODBC. Вам необходимо следующее:

Должен иметь драйвер Sybase ASE ODBC, который поставляется с SDK. Найти ниже строки подключения используется:

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

Могу ли я спросить * почему * вы хотите подключиться к как можно большему количеству различных баз данных? –

+0

уверен, я пытаюсь собрать информацию из разных систем, которые будут отображаться в одном месте. как портал для мониторинга таблиц ошибок и некоторых статистических данных. – Constantinos

+0

Обновлено мое сообщение с решением для соединения с oracle и PDO_OCI. Если у кого-то есть решение для sybase, пожалуйста, сообщите нам – Constantinos

ответ

3

Так я, наконец, удалось подключиться к четырем базе данных вот как мне удалось:


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

Oracle с Pdo_Oci. Загрузите и установите надлежащий Oracle Instant Client на вашем компьютере Windows, например instantclient_12_1, и добавьте его путь к PATH в SYSTEM Environmental Variables. Примечание. 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); 

Sybase с PDO_ODBC Должен иметь Sybase ASE ODBC Driver, который поставляется вместе с SDK. Вот код, который я использовал:

$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 
Смежные вопросы