PDO_DBLIB DSN

(PECL PDO_DBLIB >= 0.9.0)

PDO_DBLIB DSNСоединение с базами данных Microsoft SQL Server и Sybase

Описание

Имя источника данных (Data Source Name или DSN) PDO_DBLIB состоит из следующих элементов:

Префикс DSN

Используйте префикс DSN sybase: в случае, если if 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 Примеры использования PDO_DBLIB DSN

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

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

add a note add a note

User Contributed Notes 5 notes

up
11
Anonymous
1 year 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
10
michal at durys dot pl
4 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
2
aero2sing at hotmail dot com
4 years ago
Be careful if you are using dblib with prepared statement, as it will crash if first execution didn't return anything.

referring to https://bugs.php.net/bug.php?id=40639
up
3
slach at 74mail dot ru
8 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'
up
-9
ulisse at atc dot bologna dot it
7 years ago
on Linux ppc64 / PHP 5.1.2 / freetds-0.64 works well this way:

<?php
// ...
$dbh = new PDO("dblib:host=$hostdb;dbname=$dbname", $usr, $psw);
// ...
?>
To Top