wake-up-neo.com

Schwerwiegender Fehler: Aufruf der undefinierten Funktion sqlsrv_connect ()

Ich bin auf einige Posts gestoßen, die sich auf dasselbe Thema beziehen, die ich jedoch immer noch nicht lösen kann, und frage daher. Ich versuche, in meinem PHP-Skript eine Verbindung zu SQL herzustellen. Meine Verbindungszeichenfolge lautet:

/* Specify the server and connection string attributes. */
$serverName = "xxx-PC\SQLExpress";
$connectionOptions = array("Database"=>"Salesforce");
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn === false)
{
      die(print_r(sqlsrv_errors(), true));
}

Ich habe Folgendes installiert und in meine php.ini - Datei im Ordner wamp aufgenommen: C:\wamp\bin\php\php5.4.16:

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll

Mein wampserver läuft einwandfrei, ebenso wie die Dienste wampapache und wampsqld. Ich kann php.exe erfolgreich ausführen. Ich kann jedoch keine Verbindung zu SQL Server 2008 R2 Herstellen, in der sich meine Datenbank befindet. Bitte helfen Sie!

BEARBEITEN 1: Der Wamp-Server führt den WampMysQL-Dienst aus, während ich versuche, eine Verbindung zu SQL Server 2008 R2 Herzustellen. Könnte das der Grund sein? Sollte ich MySQL anstelle von SQL verwenden? Irgendwelche Hinweise?

BEARBEITEN 2: Beim Ausführen von phpinfo() wird der Abschnitt sqlsrv überhaupt nicht angezeigt, obwohl ich extension=php_sqlsrv_54_ts.dll In die Datei php.ini Im Ordner bin eingefügt habe des Wamp-Servers.

enter image description here

28
Sarah

This half mir, zu meiner Antwort zu kommen. Es gibt zwei php.ini Dateien, die sich in meinem Fall für wamp befinden. Einer ist unter dem PHP-Ordner und der andere ist in der C:\wamp\bin\Apache\Apachex.x.x\bin Mappe. Beim Herstellen einer Verbindung zu SQL über sqlsrv_connect Funktion beziehen wir uns auf die php.ini Datei im Ordner Apache. Fügen Sie dieser Datei Folgendes (gemäß Ihrer Version) hinzu:

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
10
Sarah

Wenn Sie Erweiterungen von Drittanbietern installieren, müssen Sie sicherstellen, dass alle Kompilierungsparameter übereinstimmen:

  • PHP-Version
  • Architektur (32/64 Bit)
  • Compiler (VC9, VC10, VC11 ...)
  • Fadensicherheit

Häufige Störungen umfassen:

  • Bearbeiten der falschen php.ini - Datei (typisch für Bundles); Der richtige Pfad wird in phpinfo() angezeigt.
  • Vergessen, Apache neu zu starten.
  • Startfehler werden nicht angezeigt. Diese sollten in Apache-Protokollen angezeigt werden. Sie können sie jedoch auch über die Befehlszeile diagnostizieren, z.

    php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:\Path\To\php.ini" -m
    

Wenn alles in Ordnung ist, sollten Sie sqlsrv in der Befehlsausgabe und/oder phpinfo() sehen (abhängig davon, welche SAPI Sie konfigurieren):

[PHP-Module]
bcmath
Kalender
Ader
[...]
SPL
sqlsrv
Standard
[...]

phpinfo()

12

Wenn Sie Microsoft Drivers 3.1, 3.0 und 2.0 verwenden. Bitte überprüfen Sie Ihre PHP Version, die bereits mit IIS installiert wurde.

Verwenden Sie dieses Skript, um die PHP-Version zu überprüfen:

<?php echo phpinfo(); ?>

OR

Wenn Sie PHP Manager in IIS mit dem Webplattform-Installer installiert haben, können Sie die Version davon überprüfen.

Dann:
Wenn Sie eine neue PHP Version (5.6) verwenden, laden Sie diese bitte herunter Treiber von hier

Für PHP Version niedriger als 5.6 - bitte herunterladen Treiber von hier

  • PHP Driver Version 3.1 erfordert PHP 5.4.32 oder PHP 5.5.16 oder höher.
  • PHP Driver Version 3.0 erfordert PHP 5.3.0 oder höher. Verwenden Sie nach Möglichkeit PHP 5.3.6 oder höher.
  • PHP-Treiber Version 2.0-Treiber funktioniert mit PHP 5.2.4 oder höher, jedoch nicht mit PHP 5.4. Verwenden Sie nach Möglichkeit PHP 5.2.13 oder höher.

Verwenden Sie dann den PHP Manager, um die heruntergeladenen Treiber in die php config - Datei einzufügen. Sie können dies wie unten gezeigt tun (durchsuchen Sie die Dateien und drücken Sie OK). Starten Sie dann den IIS Server neu

enter image description here

Wenn diese Methode nicht funktioniert, ändern Sie bitte die PHP-Version und versuchen Sie, Ihr PHP-Skript auszuführen.  enter image description here Um den php version Zu senken und zu verstehen, was passiert ist, können Sie relevante Treiber herunterladen, die meine obigen Schritte ausführen.

3
Elshan

Überprüfen Sie zunächst, ob die Erweiterung ordnungsgemäß in phpinfo(); geladen ist (so etwas wie sqlsrv sollte angezeigt werden). Wenn nicht, ist die Erweiterung nicht richtig geladen. Sie müssen Apache auch neu starten, nachdem Sie eine Erweiterung installiert haben.

0
Dave Child

ich habe das gleiche, weil in httpd.conf in Apache PHPIniDir D:/wamp/bin/php/php5.5.12 das war falsch

0
ashkufaraz