2017-06-21 8 views
1

SysteminformationenCall to undefined function sqlsrv_connect() - Fehlerbehebung

CMS: Wordpress

Web Server: XAMPP

PHP Version: 5.5.30

MS Management Studio 17

Ziel

Stellen MSSQL-Datenbank-Verbindung mit PHP

Was

  1. Heruntergeladene SQLSRV Treiber
  2. Kopierte Dateien php_pdo_sqlsrv_55_nts.dll und php_pdo_sqlsrv_55_ts.dll in das Verzeichnis C:\xampp\php\ext
  3. getan wurde,
  4. Der Dyna wurden folgende Zeilen hinzugefügt Teil mic Erweiterungen in der php.ini-Datei: extension=php_pdo_sqlsrv_55_ts.dll und extension=php_pdo_sqlsrv_55_nts.dll
  5. erneut gestartet Web Server
  6. Bestätigte sqlsrv wird in phpinfo aufgeführt()

-Code

$serverName = "technology-pc\sqlexpress"; 

// The connection will be attempted using Windows Authentication. 
$connectionInfo = array("Database"=>"example_db"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if($conn) { 
    echo "Connection established.<br />"; 
} else { 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 

Fehler

Aufruf an undefinierte Funktion sqlsrv_connect()

Antwort

2

Sie hinzugefügt haben, die PDO-Variante von SQLSRV Treiber der Erweiterungsliste zu verbinden, haben aber nicht die Basistreiber php_sqlsrv_55_ts.dll hinzugefügt.

Hinzufügen zum php.ini:

extension=php_sqlsrv_55_ts.dll 

oder

extension=php_sqlsrv_55_nts.dll 

Außerdem sollten Sie wirklich mit entweder der Thread-Safe (_ts.dll) oder Non-Thread-Safe (_nts.dll) Versionen des Treibers, nicht beide. Ich glaube, dass Sie die Thread-Safe-Versionen verwenden sollten, da Sie einen Apache-Server verwenden. So sollten Sie php.ini haben:

extension=php_sqlsrv_55_ts.dll 
extension=php_pdo_sqlsrv_55_ts.dll 
+0

Vielen Dank dafür, dass Sie mich darauf aufmerksam machen. Es funktioniert jetzt perfekt. – Ben

0

Wahrscheinlich haben Sie die falsche php.ini-Datei bearbeitet. Überprüfen Sie die richtige php.ini-Datei mit PHP-Info.

können Sie dieses Skript verwenden:

<?php echo phpinfo(); ?> 

Oder wenn Sie CLI-Zugriff Typ php -i haben die Informationen aufgelistet zu bekommen. Überprüfen Sie den richtigen Pfad Ihrer php.ini-Datei.

0

Try Code unten MSSQL-Datenbank

$server = 'dburl.com\MSSQLSERVER, 1433'; 
$username = 'uname'; 
$password = 'password'; 

$connectionInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password,"ReturnDatesAsStrings"=>true); 
$conn = sqlsrv_connect($server, $connectionInfo); 
Verwandte Themen