2016-01-13 2 views
3

Lors du portage d'une application web sur un serveur utilisant PHP7, je rencontre un problème: je ne peux pas faire fonctionner mssql_connect. J'ai découvert que mssql ne fonctionne pas encore (ou ne marchera jamais) sur PHP7.Comment obtenir mssql_connect pour travailler avec PHP7?

Quel est le moyen le plus rapide pour se connecter à MSSQL en utilisant PHP7 sur Ubuntu (Nginx, php-fpm)?

+2

Qu'en est-il de la connexion PDO? –

+3

De [manuel php] (https://secure.php.net/manual/fr/function.mssql-connect.php): Cette fonction a été supprimée dans PHP 7.0.0. Alternatives à cette fonction: 'PDO :: __ construct()' 'sqlsrv_connect()' 'odbc_connect()' – Ferrybig

+0

Est-ce que quelqu'un a confirmé la solution ci-dessus? –

Répondre

1

La fonction de connexion n'est pas mssql_connect() plus. Depuis PHP 5.3, il est obsolète. Maintenant sur php 7 cette ancienne fonction disparaît. Mais ne vous inquiétez pas;) De nos jours, vous pouvez utiliser la fonction sqlsrv_connect() à la place. N'oubliez pas que dans la nouvelle méthode, vous devez configurer correctement les paramètres. Il y a quelques différences. Voici un petit exemple.

<?php 
$serverName = "serverName\sqlexpress, 1542"; //serverName\instanceName, portNumber (1433 by default) 
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if($conn) { 
    echo "Successfuly connected.<br />"; 
}else{ 
    echo "Connection error.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 
?> 

Peut être cette réponse vient un peu en retard pour vous mais j'espère qu'il n'est pas trop tard pour quelqu'un.

+0

Pourquoi 'sqlsrv_connect'? Pourquoi pas "pdo" ou "mysqli"? – Michal

+0

sqlsrv_connect est pour Windows uniquement. Il a posé des questions sur "MSSQL utilisant PHP7 sur Ubuntu (Nginx, php-fpm)" –

0

1.sudo apt-get update installer php-sybase

2.

$dsn= 'dblib:host=youIP:1433;dbname=XXX;'; 
$dbusername="sa"; 
$dbpassword="XXXX"; 
try 
{ 
    $mspdo = new PDO($dsn,$dbusername,$dbpassword); 
    $mspdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $pe) 
{ 
    die("database connect error:". $pe->getMessage()); 
} 
+0

Il n'y a pas de support sybase dans PHP7 –