Se connecter à Microsoft SQL Server sous PHP depuis Linux Debian
La version de Debian utilisée dans ce tuto:
# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)" NAME="Debian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" #
Etape 1
il faut installer php-sybase (Le connecteur Sybase connector fournit les librairies nécessaires pour se connecter au serveur SQL), le logiciel freetds, et unixodbc. Faites-le de cette manière:
$ sudo apt-get install freetds-common freetds-bin unixodbc php-sybase
Une fois que c’est installé, redémarrez Apache:
$ sudo service apache2 restart
Vous pouvez maintenant tester une connexion au serveur MSSQL Server comme suit, en utilisant la ligne de commande tsql:
$ tsql -H <hostname/ip_address> -U <utilisateur> -P <mot_de_passe> -D <base_de_données>
Vous devriez obtenir un message simillaire à celui-ci:
locale is "en_US.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" Default database being set to <base_de_données> 1>
Si vous obtenez quelque chose comme ci-dessus, tout va bien. Maintenant vous pouvez configurer votre fichier /etc/freetds/freetds.conf.
Note: Cet exemple a été testé avec le Mixed-Mode Authentication sur le serveur SQL Server, à vérifier si cela fonctionne avec l’authentification Windows…
Maintenant pour configurer votre fichier /etc/freetds/freetds.conf , ouvrez le dans l’éditeur de votre choix, et vous verrez un contenu déjà renseigné. A la fin du fichier, ajoutez une entrée comme suit:
[YOUR_SERVER_FRIENDLY_NAME] host = <hostname/ip_address> port = tds version = 8.0
Vous devriez maintenant être en mesure de vous connecter sans avoir à fournir les informations du serveur telles que nom et numéro de port, comme ceci:
$ tsql -S -U -P -D
Vous devriez obtenir quelque chose comme ceci:
locale is "en_US.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" Default database being set to 1> quit
Si vous obtenez ceci, c’est excellent, vous pouvez maintenant faire un test en PHP.
Pour cela, vous pouvez vous inspirer de l’exemple ci-dessous:
$connection = new \PDO('dblib:host=yoursqlserver.poweredby.kinamo.be;dbname=database', 'username', 'password');
if (!$connection) { die('Unable to connect!'); } if (!mssql_select_db('', $connection)) { die('Unable to select database!'); }
$result = mssql_query('SELECT * FROM matable');
while ($row = mssql_fetch_array($result))
{ var_dump($row); }
mssql_free_result($result);
Quand vous lancez ce code – depuis un navigateur ou en ligne de commande, vous devriez obtenir des données depuis votre table .