PHP 7.2.0 Release Candidate 4 Released

PDO_DBLIB DSN

(PECL PDO_DBLIB >= 0.9.0)

PDO_DBLIB DSNConectarse a bases de datos de Microsoft SQL Server y Sybase

Descripción

El Nombre del origen de datos (DSN) de PDO_DBLIB está compuesto por los siguientes elementos:

DSN prefix

El prefijo DSN prefix is sybase: si PDO_DBLIB fue vinculado con la bibliotecas ct-lib de Sybase, mssql: si PDO_DBLIB fue vinculado con las bibliotecas de Microsoft SQL Server, or dblib: si PDO_DBLIB fue vinculado con las bibliotecas de FreeTDS.

host

El nombre del host en el cual la reside el servidor de bases de datos. El predeterminado es 127.0.0.1.

dbname

El nombre de la base de datos.

charset

El conjunto de caracters del cliente.

appname

El nombre de la aplicación (usado en sysprocesses). El valor predeterminado es "PHP Generic DB-lib" o "PHP freetds".

secure

Actualmente no se utiliza.

Ejemplos

Ejemplo #1 PDO_DBLIB DSN examples

El siguiente ejemeplo muestra una DSN de PDO_DBLIB para conectarse a bases de datos de Microsoft SQL Server y 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