SQLSRV is the only driver for PHP that is capable of storing UTF-8 strings into two-byte columns (NVARCHAR
instead of VARCHAR
) which is currently maintained and supported by Microsoft for PHP 5.2.X and 5.3.X.
And I also got the link for downloading these drivers Linux SQLSRV driver download for linux but I could not configure.
If someone has got idea how to configure the sqlsrv driver on linux or has some other alternative to retrieve the data from SQL server in UTF-8 format, please share.
Here's a wiki post from the Microsoft Community
https://github.com/Microsoft/msphpsql/wiki/Install-pdo_sqlsrv-for-PHP-7.0-on-Debian
I think the easiest route would be the php-pear route
# (1) Install PDO driver from pecl
apt-get install unixodbc-dev php7.0-dev php-pear
pecl install pdo_sqlsrv-4.0.5
echo -e "; priority=20\nextension=pdo_sqlsrv.so" > /etc/php/7.0/mods-available/pdo_sqlsrv.ini
phpenmod -v 7.0 pdo_sqlsrv
I Googled a bit more after I read this and I may have found the answer. On Debian:
# apt-get install freetds-common freetds-bin unixodbc php5-mssql
That will install everything PHP needs for Free TDS and allows me to connect using the sqlsrv driver.
Other UTF-8 compatible solution dblib:
You install freetds and use php-mssql driver with PDO.
Change encoding in /etc/freetds.conf
Change charset and date format in /etc/locales.conf
I did it back in 2010.
Please change:
echo -e "; priority=20\nextension=pdo_sqlsrv.so" > /etc/php/7.0/mods- available/pdo_sqlsrv.ini
to:
echo -e "; priority=20\nextension=pdo_sqlsrv.so" > /etc/php/7.0/mods-available/pdo_sqlsrv.ini