#php #sql-server #php-7
#php #sql-сервер #php-7
Вопрос:
Я пытаюсь подключиться к внешней базе данных, которая использует sqlserver, но, перепробовав множество вариантов, не смог найти тот, который работает вообще.
$connattempt1 = odbc_connect("Driver={SQL Server Native Client 10.0};Server=XXX.XXX.XXX.XX;1433;Database=IDD",'username','password');
$connattempt2 = new PDO('sqlsrv:Server=XXX.XXX.XXX.XX,1433;Database=IDD','username','password');
$connattempt3 = sqlsrv_connect('XXX.XXX.XXX.XX', [
"Database" => IDD,
"UID" => 'username',
"PWD" => 'password',
"CharacterSet" => "UTF-8"
]);
Я буду запускать этот же код на нескольких серверах apache, все они на php7. Я ищу способ подключения без необходимости редактировать php.ini на всех серверах или импортировать внешние библиотеки.
Есть ли стандартный способ правильно установить это соединение?
Любая подсказка, руководство, советы, ссылки также приветствуются, спасибо!
Комментарии:
1. Небольшое замечание — с третьей попытки вам нужно заключить имя базы данных в кавычки:
"Database" => "IDD",
Но какое сообщение об ошибке вы получаете от каждого из этих трех вызовов?2. Почему вы используете собственный клиент SQL Server, а не драйвер ODBC для SQL Server? Собственный клиент SQL Server уже некоторое время не рекомендуется .
3. Кроме того, если я не ошибаюсь, SQL Server 2012 поставляется с версией 11.0 SQLNCLI; таким образом, вы используете версию (SQLNCLI), которая не поддерживает ни одну из поддерживаемых в настоящее время версий SQL Server (включая версии с расширенной поддержкой). Я не знаю, к какой версии SQL Server вы пытаетесь подключиться, но если она поддерживается (2012 ), используемый вами драйвер вряд ли будет поддерживать ее правильно.
4. @Zhorov я получаю вызов неопределенной функции odbc_connect() (и так далее для всех остальных). После запроса менеджера кажется, что это только моя проблема с apache. Я проверил, что эти библиотеки правильно установлены в других экземплярах. Я думаю, мне нужно установить, а затем включить их. Они не поставляются с базовой установкой xammp, поэтому я сообщу вам всем, удалось ли мне исправить это после установки пакетов
5. @Mbotet Да, вам необходимо установить драйверы (как расширения PHP). И, вероятно, подход PDO должен быть вашим первым вариантом.
Ответ №1:
Некоторые установки Xammp не поставляются с общими библиотеками, это был случай. После проверки конфигураций на некоторых клиентах, казалось, все работало хорошо, и только на моем локальном компьютере не хватало этих библиотек. Это была библиотека, которую я использовал: https://pecl.php.net/package/sqlsrv/5.9.0/windows Этот веб-сайт — действительно отличный ресурс для поиска любой библиотеки dll, которая вам может понадобиться, поэтому я надеюсь, что это поможет.