©
Ce document utilise Manuel du site Web PHP chinois Libérer
(PECL PDO_DBLIB >= 0.9.0)
PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases
The PDO_DBLIB Data Source Name (DSN) is composed of the following elements:
The DSN prefix is sybase:
if PDO_DBLIB was
linked against the Sybase ct-lib libraries,
mssql:
if PDO_DBLIB was linked against the
Microsoft SQL Server libraries, or dblib:
if
PDO_DBLIB was linked against the FreeTDS libraries.
The hostname on which the database server resides. Defaults to 127.0.0.1.
The name of the database.
The client character set.
The application name (used in sysprocesses). Defaults to "PHP Generic DB-lib" or "PHP freetds".
Currently unused.
Example #1 PDO_DBLIB DSN examples
The following examples show a PDO_DBLIB DSN for connecting to Microsoft SQL Server and Sybase databases:
mssql:host=localhost;dbname=testdb sybase:host=localhost;dbname=testdb dblib:host=localhost;dbname=testdb
[#1] michal at durys dot pl [2013-05-10 08:22:08]
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).
[#2] aero2sing at hotmail dot com [2013-02-21 05:26:21]
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
[#3] ulisse at atc dot bologna dot it [2010-03-11 05:38:50]
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);
// ...
?>
[#4] slach at 74mail dot ru [2009-02-04 02:11:34]
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'