初试PHP连接sql server
程序员文章站
2022-04-09 19:04:57
最开始想使用 pdo_sqlsrv 拓展,但是一直没成功,本文采用的是 pdo_dblib + freetds。 环境:CentOS 6.8、PHP 5.6.20 freetds pdo_dblib 测试代码 另外,我这边用的是 php-5.6.20 安装包里自带的拓展包去编译 pdo_dblib, ......
最开始想使用 pdo_sqlsrv 拓展,但是一直没成功,本文采用的是 pdo_dblib + freetds。
环境:centos 6.8、php 5.6.20
freetds
1 wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz 2 tar -xzf freetds-patched.tar.gz 3 cd freetds-1.00.109/ 4 ./configure --prefix=/datas/soft/freetds --enable-msdblib --with-tdsver=7.1 5 make 6 make install 7 /datas/soft/freetds/bin/tsql -c
pdo_dblib
1 cd ~/php-5.6.20/ext/pdo_dblib 2 /datas/soft/php56/bin/phpize 3 ./configure --with-php-config=/datas/soft/php56/bin/php-config --with-pdo-dblib=/datas/soft/freetds 4 make 5 make install 6 vim /datas/soft/php56/etc/php.ini 7 extension = "pdo_dblib.so" 8 php --ri pdo_dblib
测试代码
1 $db = new pdo ("dblib:host=ip:端口;dbname=数据库名","用户名","密码"); 2 $stmt = $db->prepare("select top 5 * from my_table"); 3 $stmt->execute(); 4 while ($row = $stmt->fetch()) { 5 var_dump($row); 6 }
另外,我这边用的是 php-5.6.20 安装包里自带的拓展包去编译 pdo_dblib,偶然有一次是从 http://pecl.php.net/package/pdo_dblib 下载的,会出现以下错误
1 checking for re2c... no 2 configure: warning: you will need re2c 0.13.4 or later if you want to regenerate php parsers. 3 checking for gawk... gawk 4 checking for pdo_dblib support via freetds... yes, shared 5 configure: error: directory /datas/soft/freetds is not a freetds installation directory
参考资料
https://www.linuxidc.com/linux/2008-09/15686.htm
推荐阅读