centos php5.6 安装sqlserver扩展

centos php5.6 安装sqlserver扩展
1、安装freetds
wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar zxvf freetds-stable.tgz
cd freetds-0.91/
./configure –prefix=/usr/local/freetds0.91 –enable-msdblib –with-tdsver=8.0
make &&make install

2、修改配置文件,增加库连接信息
vi /usr/local/freetds0.91/etc/freetds.conf
host = mssql.yourdomain.com
port = 1433
tds version = 8.0
client charset = UTF-8

3、编译php时加上
–with-mssql=/usr/local/freetds0.91
或者以扩展编译php,略

至此mssql_connect应该是可以工作了,如果想要通过pdo连接mssql,还要编译pdo的mssql扩展
cd /php源码目录/ext/mssql
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-dblib=/usr/local/freetds
make && make install

mysql存储过程游标触发停止的一个坑

mysql存储过程里,遍历游标可以通过这样的语句判断是否遍历完毕:
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
如果在遍历游标的循环里,有查询语句,碰巧查询结果是null,那么也会触发这个not found的条件,从而导致遍历提前退出。
为了避开这个问题,要么不要在遍历里查询,要么先select count(*),不管有没有查询到数据,count都会返回一个结果,然后判断count值来决定是否执行遍历里的查询语句,这样就不会触发遍历结束的条件了