web-dev-qa-db-fra.com

Connexion à mssql en utilisant pdo via php et linux

J'essaye de créer une nouvelle connexion PDO en utilisant le code suivant.

new PDO("mssql:driver=????;Server={$serverName};Database={$databaseName}", $username, $password, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

Je ne sais pas quels pilotes utiliser? ou comment les installer. Je peux me connecter parfaitement en utilisant la fonction mssql_connect dans PHP mais je souhaite plutôt utiliser la bibliothèque PDO. 

S'il vous plaît laissez-moi savoir si vous avez une idée sur la façon de résoudre mon problème ou comment je peux mieux formuler ma question?

Mes paramètres php.ini pour mssql sont:

ssql

Prise en charge de MSSQL activée
Liens persistants actifs 0
Liens actifs 1
Version de la bibliothèque FreeTDS

Directive Valeur locale Valeur principale
mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.charset pas de valeur pas de valeur
mssql.compatability_mode Off Off
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unlimited Unlimited
mssql.max_procs Unlimited Unlimited
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Off Off
mssql.textlimit Server default Server default
mssql.textsize Server default Server default
mssql.timeout 60 60

Merci

24
richie

Le pilote PDO mssql n'est plus, utilisez sqlsrv (sous les fenêtres php) ou dblib (sous le php linux)

http://msdn.Microsoft.com/en-us/sqlserver/ff657782.aspx

http://www.php.net/manual/en/ref.pdo-dblib.php

31
James

Je suis sous Ubuntu 14.04. Essayer de me connecter à MSSQL. Il semble que l’extension dblib/sybase PHP soit manquante.

Je devais courir:

Sudo apt-get install php5-sybase freetds-common libsybdb5 \ 
&& Sudo Apache2ctl restart

Fonctionne bien maintenant. 

4
Karl Wilbur

Essayer 

$dbh = new PDO ("mssql:Host=$hostname;dbname=$dbname","$username","$pw");

$hostname may need to be configured as either...
$hostname.':'.$port;

OU 

$hostname.','.$port;
1
csi

L'astuce relative à l'extension dblib/sybase PHP publiée par Karl Wilbur a fonctionné pour moi . La page de vérification de la pré-installation de LimeSurvey s'affiche désormais.

Bibliothèque de pilotes PDO PHP - Microsoft SQL Server (dblib), MySQL

Assurez-vous simplement de trouver et d'installer la version qui correspond à la version PHP que vous utilisez;

Prompt>Sudo apt-get install php<appropriate version>-sybase freetds-common libsybdb5 Prompt>Sudo Apache2ctl restart

À votre santé,

0
Shivashish