web-dev-qa-db-de.com

Verbindung zu mssql mit pdo über PHP und Linux

Ich versuche für eine neue PDO-Verbindung mit dem folgenden Code.

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

Ich bin nicht sicher, welche Treiber verwendet werden sollen. oder wie man sie installiert. Ich kann mit der Funktion mssql_connect in PHP eine einwandfreie Verbindung herstellen, aber ich möchte stattdessen die PDO-Bibliothek verwenden. 

Bitte lassen Sie mich wissen, ob Sie Ideen haben, wie Sie mein Problem lösen können oder wie ich meine Frage besser formulieren kann.

Meine php.ini-Einstellungen für mssql sind:

ssql

MSSQL-Unterstützung aktiviert
Aktive persistente Links 0
Aktive Links 1
Bibliotheksversion FreeTDS

Richtlinie "Local Value Master Value"
mssql.allow_persistent Ein Ein
mssql.batchsize 0 0
mssql.charset kein Wert kein Wert
mssql.compatability_mode Aus Aus
mssql.connect_timeout 5 5
mssql.datetimeconvert Ein Ein
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unbegrenzt Unbegrenzt
mssql.max_procs Unlimited Unlimited
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Aus Aus
mssql.textlimit Standardwert des Servers Standardserver
mssql.textsize Standardeinstellung des Servers
mssql.timeout 60 60

Vielen Dank

24
richie

Der PDO-Mssql-Treiber ist nicht mehr vorhanden, verwenden Sie sqlsrv (unter PHP-Fenstern) oder dblib (unter PHP-Linux).

http://msdn.Microsoft.com/de-de/sqlserver/ff657782.aspx

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

31
James

Ich verwende Ubuntu 14.04. Beim Versuch, eine Verbindung zu MSSQL herzustellen, wurde die Meldung "Nicht erfasste Ausnahme" PDOException "mit der Meldung" Treiber wurde nicht gefunden "angezeigt. Es scheint, dass mir die Erweiterung dblib/sybase PHP fehlte.

Ich musste rennen:

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

Funktioniert jetzt gut. 

4
Karl Wilbur

Versuchen 

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

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

ODER 

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

Der Erweiterungs-Tipp dblib/sybase PHP, der von Karl Wilbur veröffentlicht wurde, hat für mich gearbeitet

PHP PDO-Treiberbibliothek - Microsoft SQL Server (dblib), MySQL

Stellen Sie einfach sicher, dass Sie die Version finden und installieren, die mit der von Ihnen verwendeten PHP -Version übereinstimmt.

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

Prost,

0
Shivashish