PHP Conference Nagoya 2025

DSN-строка подключения через драйвер PDO_DBLIB

(No version information available, might only be in Git)

DSN-строка подключения через драйвер PDO_DBLIBСоединение с базами данных Microsoft SQL Server и Sybase

Описание

DSN-строка подключения (англ. сокр.: Data Source Name — имя источника данных) через драйвер PDO_DBLIB состоит из следующих элементов::

DSN-префикс

DSN-префикс — строка sybase: указывают, только если драйвер PDO_DBLIB собрали с библиотеками Sybase ct-lib, строка mssql:, если драйвер PDO_DBLIB собрали с библиотеками сервера Microsoft SQL Server, и строка dblib:, если драйвер PDO_DBLIB собрали с библиотеками FreeTDS.

host

Имя сервера, на котором лежит база данных. Значение по умолчанию — 127.0.0.1.

dbname

Название базы данных.

charset

Клиентский набор символов.

appname

Название приложения, которое указывают в системном представлении совместимости sysprocesses. Значение по умолчанию — "PHP Generic DB-lib" или "PHP freetds".

secure

Пока не используется.

Примеры

Пример #1 Пример DSN-строки подключения через драйвер PDO_DBLIB

Следующий пример показывает DSN-строку подключения через драйвер PDO_DBLIB для соединения с базами данных Microsoft SQL Server и Sybase:

mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb

Добавить

Примечания пользователей 3 notes

up
12
Anonymous
8 years ago
Instead of specifying tds version and client charset in freetds.conf, you may pass it as a parameter.
<?php $dsn = 'dblib:version=7.0;charset=UTF-8;host=domain.example.com;dbname=example;'; ?>
up
9
michal at durys dot pl
11 years ago
If you're using FreeTDS driver and you want to use "charset" parameter then you may have to edit freetds.conf (e.g. /etc/freetds/freetds.conf) and force connection using at least version 7.0 of the protocol.

tds version = 7.0

Charset parameter accepts all encodings supported by iconv (execute iconv --list to show all encodings).
up
5
slach at 74mail dot ru
15 years ago
when you connect to non standart 1433 port

for win32 use DSN like 'mssql:host=hostname,port;dbname=database'

for FreeTDS and DB-Lib use DSN like 'mssql:host=hostname:port;dbname=database'
To Top