(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_connect — Соединяется с источником данных
$dsn
,$user
,$password
,$cursor_option
= SQL_CUR_USE_DRIVER
Идентификатор соединения, который возвращает функция, потребуется другим ODBC-функциям. Разрешается открывать несколько соединений одновременно, если коннектор установил соединение с разными базами данных или разными учётными данными.
Отдельные ODBC-драйверы, которые выполняют сложные хранимые процедуры, иногда завершаются ошибкой наподобие: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it" («Невозможно открыть курсор в хранимой процедуре, которая содержит другие команды, кроме одной команды SELECT»). Тип курсора SQL_CUR_USE_ODBC помогает избегать появления этой ошибки. Отдельные драйверы также не поддерживают необязательный параметр row_number в функции odbc_fetch_row(). Курсор SQL_CUR_USE_ODBC также иногда помогает в похожих случаях.
dsn
Имя источника базы данных (англ. Database Source Name, DSN) для соединения. Альтернативно функция работает и со строкой соединения без DSN-имени.
user
Имя.
password
Пароль.
cursor_option
Устанавливает тип курсора для соединения. Обычно этот параметр не требуется, но иногда становится полезным для обхода проблем с отдельными ODBC-драйверами.
Для типа курсора определили следующие константы:
Функция возвращает ODBC-соединение или false
, если возникла ошибка.
Версия | Описание |
---|---|
8.4.0 |
Параметр odbc теперь ожидает экземпляр соединения Odbc\Connection;
раньше ожидался аргумент с типом resource.
|
8.4.0 | Функция теперь возвращает экземпляр соединения Odbc\Connection; раньше возвращалось значение с типом resource. |
Пример #1 Пример соединения без DSN-строки подключения
<?php
// Microsoft SQL Server, который работает через драйвер SQL Native Client 10.0 ODBC Driver, разрешает соединяться
// с серверами SQL 7, 2000, 2005 и 2008
$connection = odbc_connect(
"Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;",
$user,
$password
);
// Соединение с источником данных Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);
// Соединение с источником данных Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect(
"Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir",
'',
''
);
?>