4

When i add the extenstion extension=pdo_sqlsrv.so in php.ini file in linux server with PHP v7.0 it's giving following error

undefined symbol: php_pdo_register_driver in Unknown on line 0

Please Help me.

Thanks

Raheel Aslam
  • 141
  • 1
  • 3

3 Answers3

2

Add the pdo.so library before all others of the pdo type.

Use this order in php.ini

extension=pdo.so
extension=pdo_sqlsrv.so
extension=sqlsrv.so

After, restart with service apache2 restart

Works for me.

Sergio Cabral
  • 171
  • 1
  • 4
1

For anybody who tried loading sqlsrv and pdo_sqlsrv on php 7.4 and Ubuntu 18.04, you might need to do the following:

php 7.4 example:

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

Note: For older versions of PHP you need to specify the version of the module.

php 7.1 example:

pecl install sqlsrv-5.7.0preview
pecl install pdo_sqlsrv-5.7.0preview

Then login as root:

sudo su -
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.4/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini

Note: DO NOT add extension=sqlsrv.so and extension=pdo_sqlsrv.so in your php.ini file. Instead enable the module.

sudo phpenmod -v 7.4 sqlsrv pdo_sqlsrv
sudo apachectl restart

Now if you load phpinfo() in your browser or command line you should now have pdo_sqlsrv support enabled.

PHP Version 7.4.16

pdo_sqlsrv
pdo_sqlsrv support  enabled
ExtensionVer    5.9.0
Directive   Local Value Master Value
pdo_sqlsrv.client_buffer_max_kb_size    10240   10240
pdo_sqlsrv.log_severity 0   0
pdo_sqlsrv.report_additional_errors 1   1
pdo_sqlsrv.set_locale_info  2   2
mforsetti
  • 2,666
  • 2
  • 16
  • 20
0

To fix the problem, type in terminal linux centos 7 :

step 1:

php --ini
find /etc/php.d/20-pdo.ini 

edit file and append extension=sqlsrv.so extension=pdo_sqlsrv.so
note: comment extention extension=sqlsrv.so , extension=pdo_sqlsrv.so on /etc/php.ini

step 2:

restart httpd

step 3:

php -m #you see loaded module
ramin
  • 1
  • 1