Я пытаюсь разработать веб-приложение, которое может подключаться к как можно большему количеству различных баз данных на 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);
Могу ли я спросить * почему * вы хотите подключиться к как можно большему количеству различных баз данных? –
уверен, я пытаюсь собрать информацию из разных систем, которые будут отображаться в одном месте. как портал для мониторинга таблиц ошибок и некоторых статистических данных. – Constantinos
Обновлено мое сообщение с решением для соединения с oracle и PDO_OCI. Если у кого-то есть решение для sybase, пожалуйста, сообщите нам – Constantinos