(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_connect — Соединяется с источником данных
$dsn,$user = null,$password = null,$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
Имя.
Параметр игнорируется, если dsn содержит uid.
Для подключения без указания user используйте null.
password
Пароль.
Параметр игнорируется, если dsn содержит pwd.
Для подключения без указания password используйте null.
cursor_optionУстанавливает тип курсора для соединения. Обычно этот параметр не требуется, но иногда становится полезным для обхода проблем с отдельными ODBC-драйверами.
Для типа курсора определили следующие константы:
Функция возвращает ODBC-соединение или false, если возникла ошибка.
| Версия | Описание |
|---|---|
| 8.4.0 |
Параметр odbc теперь ожидает экземпляр соединения Odbc\Connection;
раньше ожидался аргумент с типом resource.
|
| 8.4.0 | Функция теперь возвращает экземпляр соединения Odbc\Connection; раньше возвращалось значение с типом resource. |
| 8.4.0 |
Параметры user и password теперь допускают
значение null; они теперь являются необязательными и по умолчанию имеют значение null.
|
| 8.4.0 |
Ранее использование пустой строки для параметра password не включало pwd
в генерируемую строку подключения параметра dsn.
Теперь он генерируется для включения pwd,
который имеет пустую строку в качестве своего значения.
Чтобы восстановить прежнее поведение, в параметр password
теперь можно передать значение null.
|
| 8.4.0 |
Ранее, если dsn содержал uid или pwd,
параметры user и password игнорировались.
Теперь параметр user игнорируется, только если значение параметра dsn
содержит uid, а параметр password игнорируется,
только если значение параметра dsn содержит pwd.
|
Пример #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",
'',
''
);
?>