pdo_odbc 扩展在 PHP 源码包里有,所以
1. php-7.1.10/ext/pdo_odbc
2.phpize
3. ./configure --with-pdo-odbc=unixODBC --with-php-config=/usr/local/bin/php-config
这里要提前安装unixODBC 和 unixODBC-dev : apt-get install unixODBC unixODBC-dev
如果安装了unixODBC还出现 Cannot find header file(s) for pdo_odbc
表示unixODBC的安装路径不是默认的 /usr/local
这时候使用 dpkg -L unixODBC-dev 查看安装目录:
发现前面错信息里出现的 sql.h 的路径,得知unixODBC 在 /usr 下,于是:
./configure --with-pdo-odbc=unixODBC,/usr --with-php-config=/usr/local/bin/php-config
就可以解决这个问题
4.make && make install
5.加入 php.ini
————————————————————————————————————————
关于pdo dsn 字符串格式
由于一些数据库的 pdo 驱动是 PHP 官方实现的的 所以 dsn串的格式相对统一
但是使用 pdo_odbc 连接数据库则要使用 该类型数据库对应的 odbc dsn 串;
这里分享一个各种数据库在各种驱动下的 dsn 串查询网址:
https://www.connectionstrings.com/
还有个小细节就是 dsn 中如果有特殊字符或者空格需要用{}括起来,一般多用在驱动名和密码
odbc:DRIVER={PostgreSQL Unicode};Server=192.168.1.27;Port=5432;Database=test;Uid=root;Pwd={aar+22ss_m&@an-a:g?}