pátek 23. července 2021

PHP komunikace s MS SQL

Dnes jsem potřeboval napsat jednoduchou PHP aplikaci, která vyčítá data z MS SQL serveru. Bohužel jsem se musel trochu poprat s nastavením linuxového serveru a jeho komponent s vazbou na MSSQL.

Na čem jsem to rozběhl a jak :

  • UBUNTU 20.04 LTS + Apache2 + PHP 7.4
  • Windows server + MS SQL 2008 R2

Nebudu zde popisovat rozběhnutí Ubuntu serveru, Apache a PHP, což budu pro tento návod považovat jako výchozí, již funkční. 

Bohužel tahle problematika je při vyhledávání na Googlu dost probíraná, ale ne všechny návody jsou funkční, nebo jen částečně. Takže tady spojeno do jednoho.

Doinstaluji si 

apt-get install unixodbc tdsodbc


Do /etc/odbc.ini vložím:

[mssql]
Description   = MSSQL Server
Driver        = freetds
Database      = mojeDatabaze
ServerName    = MSSQL
TDS_Version   = 7.1


Do /etc/odbcinst.ini vložím:

[freetds]
Description = MS SQL database access with Free TDS
#Driver     = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Driver      = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup       = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
UsageCount  = 1


Do /etc/freetds/freetds.conf vložím:

[mojeSpojeni]
host        = IPadresaSQLserveruNeboFQDN
instance    = instanceSqlServeru
database    = mojeDatabaze
tds version = auto


Po editaci těchto tří souborů restatuji Apache2

$sudo systemctl restart apache2


A jak vypadá samotné volání PDO v PHP? :

<?php

$pdo = new PDO ('odbc:DRIVER=FreeTDS;SERVERNAME=mojeSpojeni;DATABASE=' . $dbname . ';ClientCharset=UTF-8', $username, $password);

?>

Žádné komentáře:

Okomentovat