Linux 平台应用最广泛的数据库应该还是MYSQL ,但项目必须要用到MS SQL SERVER 做为主数据库。而网站程序却要用PHP 来写。无奈之下只能苦寻在LINUX下配置 访问MS SQL SERVER的方法。
安装基本环境
安装lnmp
现在安装很方便,一键包点几下就完成,推荐军哥的LNMP
安装FreeTDS 组件
wget为php 添加 mssql支持
进入lnmp的安装包源代码处配置并编译
cd lnmp1.3*/src/tar zxvf php-5.4.45.tar.gz
cd php-5.4.45/ext/mssql/
#使用phpize生成configure脚本文件
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds
make && make install
然后编辑 /usr/local/php/etc/php.ini
在extension = "pdo_mysql.so"下面添加
extension = "mssql.so"
保存后,/root/lnmp restart 重启lnmp即可使php 支持mssql
配置FreeTDS
配置数据库源
FreeTDS类似于windows 中的数据源,需要先配置才能使用
修改freetds配置文件
vi /usr/local/freetds/etc/freetds.conf在文件末尾添加以下类似配置添加SQL SERVER服务器信息后保存
[Server1]host = 192.168.1.2 #sql server 服务器1
port = 1433 # sql server 服务端口
tds version = 7.0 # sql server 2000
[Server2]
host = 192.168.1.5 #服务器2
port = 1433
tds version = 8.0 # sql server 2005/2008
测试连接数据库
/usr/local/freetds/bin/tsql -S Server1 -U 用户名 -P 密码命令行若显示以下内容的话则成功证明成功!
locale is "zh_CN.UTF-8"locale charset is "UTF-8"
using default charset "UTF-8"
1>
数据库查询
locale is "zh_CN.UTF-8"locale charset is "UTF-8"
using default charset "UTF-8"
1>use ErpData
1>go
1>select * from emplyee
1>go
1>###每次输完语句后需要再输一次go 才会真正执行语句
PHP使用MSSQL
//连接数据库$msdb=mssql_connect("Server1","数据库用户名","密码") or die("Can't connect sql server");
mssql_select_db("ErpData",$msdb); //选择数据库
$sql="select * from emplyee where id=1";
$result = mssql_query($sql, $msdb);
if($row=mssql_fetch_array($result))
{
$empcode = $row[0];
}
mssql_free_result($result);//清空记录集
mssql_close($msdb);//关闭数据库连接