PDO MSSQL Server – Treiber nicht gefunden

Lesezeit: 3 Minuten

Ich versuche derzeit, eine Verbindung zu meiner localdb auf MSSQL 2012 Express herzustellen.

Ich habe den offiziellen Microsoft-Treiber von heruntergeladen und installiert http://www.microsoft.com/en-us/download/details.aspx?id=20098

Ich bekomme eine Art SQLSRV-Abschnitt in meiner phpinfo(). Aber wenn ich versuche, ein neues PDO-Objekt zu erstellen, sagt es, dass es den Treiber nicht hat. Was ich verstehen konnte, da es im PDO-Abschnitt phpinfo() nicht erwähnt wird, aber es hat einen eigenen Abschnitt + die get_loaded_extensions zeigen auch sqlsrv. Ich nehme an, das stammt vom offiziellen MS-Treiber? Ich verwende die php_sqlsrv_53_nts.dll mit meinem Zend Server CE 5.6 mit PHP 5.3.9

Soweit ich verstanden habe, habe ich den falschen Treiber heruntergeladen und sollte den vom PECL-Manager bereitgestellten versuchen? Es ist nur der Quellcode verfügbar und offensichtlich bin ich auf einem Windows-Rechner, damit ich alles vergessen kann, was ich selbst kompilieren muss – ich erhalte tatsächlich die Suffix-Fehler, wenn ich die Powershell und meine Pecl / Pear-Installation verwende.

Hat jemand das Problem gelöst? Jede Hilfe sehr geschätzt

Alles Gute Richard

  • hast du pdo mssql in php.ini aktiviert?

    – Leri

    28. Juni 2012 um 13:44 Uhr

  • @PLB ja habe ich vor meinem extension=php_sqlsrv_53_nts.dll aber es ändert sich nicht. Ich habe meinen Apache auch mehrmals neu gestartet.

    – Richard

    28. Juni 2012 um 13:52 Uhr

  • Aber schau doch mal rein diese Stufen vielleicht hast du was verpasst.

    – Leri

    28. Juni 2012 um 13:54 Uhr

  • @PLB danke – das einzige, was Probleme verursachen könnte, ist, dass ich php_pdo_mssql nicht lade, aber dies ist experimentell auf php.net und es wird empfohlen, den MS-Adapter zu verwenden 🙁

    – Richard

    28. Juni 2012 um 13:58 Uhr


  • Wie meine kleine Recherche zeigt, können Sie msserver nicht mit pdo verbinden, ohne es zu aktivieren pdo_mssql.dll. Vielleicht konnte ich nicht gut suchen.

    – Leri

    28. Juni 2012 um 14:08 Uhr

Die PDO-Erweiterung ist nicht identisch mit dem nativen Treiber, den Microsoft anbietet. Für PDO müssen Sie aktivieren

extension=php_pdo_mssql.dll

in deiner php.ini.

Normalerweise sollte diese Datei (php_pdo_mssql.dll) in Ihrem PHP-Erweiterungsverzeichnis (C:…\php\ext) liegen. Wenn es nicht dort ist, können Sie PHP von herunterladen http://windows.php.net/download/ und nehmen Sie einfach die Erweiterung aus einem Paket dort (nehmen Sie natürlich eines, das Ihrer PHP-Version entspricht).

//Bearbeiten: Lesen Sie gerade Ihren letzten Kommentar. Diese Erweiterung ist jetzt schon sehr lange verfügbar und kann als funktionierend angesehen werden. Wenn Sie es nicht verwenden dürfen, müssen Sie Ihren Code umschreiben, um die Funktionen zu nutzen, die der native Treiber für PHP bietet.

Eine andere Möglichkeit besteht darin, die odbc-Treiber zu verwenden, die standardmäßig in den PHP-Erweiterungen enthalten sind. Möglicherweise müssen Sie sie in Ihrer noch auskommentieren php.ini obwohl.

extension=php_pdo_odbc.dll

Vergessen Sie nicht, Ihren Server danach neu zu starten 😉

Und dann benutze es so:

$db = new PDO('odbc:Driver={SQL Server};Server=192.168.x.x;Database=DatabaseName; Uid=User;Pwd=Password');
$stmt = $db->query("SELECT the_usual FROM aTable WHERE all="well"");

In Ordung. Ich nehme an, es ist nur einer dieser Tage.

Ich habe die falsche Erweiterung von den mitgelieferten von MS geladen bekommen. musste ich verwenden php_pdo_sqlsrv_53_nts
eher, als
php_sqlsrv_53_nts

Danke für all die Hilfe

995080cookie-checkPDO MSSQL Server – Treiber nicht gefunden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy