hsuk
hsuk

Reputation: 6860

Install SQLSRV driver on Linux, or other UTF-8 capable driver?

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.

Upvotes: 8

Views: 38613

Answers (4)

GardenRouteGold
GardenRouteGold

Reputation: 6319

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

Upvotes: 2

jerry145
jerry145

Reputation: 1

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

Upvotes: 0

Kirill Morozov
Kirill Morozov

Reputation: 146

Other UTF-8 compatible solution dblib:

  1. You install freetds and use php-mssql driver with PDO.

  2. Change encoding in /etc/freetds.conf

  3. Change charset and date format in /etc/locales.conf

I did it back in 2010.

Upvotes: 1

user1161625
user1161625

Reputation: 662

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.

Upvotes: 1

Related Questions