2017-06-21 1 views
1

Informations sur le systèmeAppel à sqlsrv_connect undefined function() - Dépannage

CMS: Wordpress

Web Server: XAMPP

PHP Version: 5.5.30

MS Management Studio 17

Objectif

établir MSSQL connexion de base de données en utilisant PHP

Ce qui a été fait

  1. téléchargés sqlsrv Pilotes
  2. fichiers Copié de php_pdo_sqlsrv_55_nts.dll et php_pdo_sqlsrv_55_ts.dll dans le répertoire C:\xampp\php\ext
  3. Ajout des lignes suivantes à la dyna extensions micro part au fichier php.ini: extension=php_pdo_sqlsrv_55_ts.dll et extension=php_pdo_sqlsrv_55_nts.dll
  4. Restarted Web Server
  5. sqlsrv Confirmé est listé dans phpinfo()

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)); 
} 

Erreur

Appel à la fonction indéfinie sqlsrv_connect()

Répondre

2

Vous avez ajouté la variante PDO des pilotes sqlsrv à la liste des extensions, mais n'ont pas ajouté les pilotes de base php_sqlsrv_55_ts.dll.

Ajouter au php.ini: versions

extension=php_sqlsrv_55_ts.dll 

ou

extension=php_sqlsrv_55_nts.dll 

En outre, vous devriez vraiment être en utilisant soit le thread-safe (_ts.dll) ou non-thread-safe (_nts.dll) du conducteur, non tous les deux. Je crois que, comme vous utilisez un serveur Apache, vous devriez utiliser les versions Thread-Safe. Donc, vous devriez avoir php.ini:

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

Merci d'avoir porté cela à mon attention. Cela fonctionne parfaitement maintenant. – Ben

0

Vous avez probablement modifié le mauvais fichier php.ini. Vérifiez le bon fichier php.ini avec info php.

Vous pouvez utiliser ce script:

<?php echo phpinfo(); ?> 

Ou si vous avez le type php -i accès CLI pour obtenir les informations énumérées. Vérifiez le bon chemin de votre fichier php.ini.

0

Essayez ci-dessous le code de connexion base de données MSSQL

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

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