PDO_SQLSRV DSN

(PECL pdo_sqlsrv >= 2.0.1)

PDO_SQLSRV DSNConnexion à des bases de données MS SQL Server et SQL Azure

Description

Le fichier DSN (Data Source Name) PDO_SQLSRV est composé des éléments suivants :

préfixe DSN

Le préfixe DSN est sqlsrv:.

APP

Le nom de l'application, utilisé pour les traces.

ConnectionPooling

Spécifie si la connexion est assignée à un pool de connexions (1 ou true) ou non (0 ou false).

Database

The name of the database.Le nom de la base de données.

Encrypt

Spécifie si la communication avec le server SQL Server est encryptée (1 ou true) ou non-encryptée (0 ou false).

Failover_Partner

Sépcifie le serveur et l'instance de la base de données miroir (si elle est activée et configurée) à utiliser quand le serveur principal est inaccessible.

LoginTimeout

Spécifie le nombre de secondes d'attente avant de stopper et mettre en erreur la tentative de connexion.

MultipleActiveResultSets

Désactive, ou active explictement, le support pour des jeux de résultats multiples (Multiple Active Result Sets, MARS).

QuotedId

Spécifie s'il faut utiliser les règles SQL-92 pour les identifiants entre guillemets (1 ou true) ou s'il faut utiliser les règles Transact-SQL standard (0 ou false).

Server

Le nom du serveur de base de données.

TraceFile

Le chemin du fichier utilisé pour les traces.

TraceOn

Spécifie si les traces ODBC sont activées (1 ou true) ou désactivées (0 ou false) à l'activation de la connexion.

TransactionIsolation

Spécifie le niveau d'icolation de la transaction. les valeurs possibles pour cette option sont PDO::SQLSRV_TXN_READ_UNCOMMITTED, PDO::SQLSRV_TXN_READ_COMMITTED, PDO::SQLSRV_TXN_REPEATABLE_READ, PDO::SQLSRV_TXN_SNAPSHOT, et PDO::SQLSRV_TXN_SERIALIZABLE.

TrustServerCertificate

Spécifie si le client doit faire confiance (1 ou true) ou rejeter (0 ou false) un certificat serveur auto-signé.

WSID

Spécifie le nom de l'ordinateur pour les traces.

Exemples

Exemple #1 Exemples de DSN PDO_SQLSRV

L'exemple suivant montre comment se connecter à la base de données MS SQL Server spécifiée :

$c = new PDO("sqlsrv:Server=localhost;Database=bddtest", "Utilisateur", "MotDePasse");

L'exemple suivant montre comment se connecter à la base de données MS SQL Server spécifiée sur un port spécifique :

$c = new PDO("sqlsrv:Server=localhost,1521;Database=bddtest", "Utilisateur", "MotDePasse");

L'exemple suivant montre comment se connecter à une base de données SQL Azure avec l'ID serveur 12345abcde. Notez que, quand vous vous connectez à Azure avec PDO, votre nom d'utilisateur sera Utilisateur@12345abcde (Utilisateur@IdServeur).

$c = new PDO("sqlsrv:Server=12345abcde.database.windows.net;Database=bddtest", "Utilisateur@12345abcde", "MotDePasse");

add a note add a note

User Contributed Notes 4 notes

up
3
Daniel Klein
6 years ago
This is the code that worked for me. I had to specify both the host name [localhost] and the server instance name [SQLEXPRESS], separating them with a double backslash before it would work.

<?php
$conn
= new PDO('sqlsrv:Server=localhost\\SQLEXPRESS;Database=MyDatabase', 'MyUsername', 'MyPassword');
?>
up
3
support at spam eaccounts trap net
10 years ago
I suspect the problem with "Server=foo-sql\MSSQLSERVER" was you didn't escape the backslash, with a backslash.

If hostname worked, than IP would work as well given a hostname resolves to an IP unless your DNS was mapping to the wrong IP which would be a simple issue.

I suspect you are running your web services on the same host as mssql?  If so, confirm that your mssql server is set to bind to IP addresses (if you want access from the outside of that box).  If you are only able to connect via a name (as in a NetBIOS or Active Directory name), it's likely you are connecting to a "socket" or named pipe.
up
3
david at nospam-rm-this dot functionalchaos dot net
10 years ago
I found with MS-SQL Server 2008 on Windows Server 2008 R2 that I needed to use the MSSQL Server name. The servers hostname or IP address would not work ( with or without port, and/or SQL instance name, etc.) After trying several combinations, this is what I found worked in my configuration:

host-ip: 10.4.2.50
host-name: mssqlhost.mydomain.org
mssql-server-name: foo-sql
mssql-instance-name: MSSQLSERVER
database-name: mydb

<?php

$dbh
= new PDO("sqlsrv:Server=foo-sql,1433;Database=mydb", $user , $pass);

?>

The above worked with and without port (,1433). I also noticed adding the instance name (MSSQLSERVER) after the server name with a slash (\), as in "Server=foo-sql\MSSQLSERVER" caused a failure to connect.
up
-41
alasdair at angryloner dot com dot au
10 years ago
Adding the backslash solved the problem for me.

Here's my functioning localdb connection string:

new PDO("sqlsrv:Server=(localdb)\\v11.0 ; Database = my_db ; AttachDBFilename = C:\Users\user\my_db.mdf", "", "");
To Top