在linux上配置 PHP+MSSQL、PDO-MSSQL
2011-04-06 14:31
309 查看
WIN下用PHP读写MSSQL很简单,装上MSSQL客户端,再编辑PHP.INI开个扩展extension=php_mssql.dll ,就OK了. PDO的支持也是如此: extension=php_pdo_mssql.dll
可是linux下就不是那么简单的事情.
有过linux下读写MSSQL数据库经验的朋友,对于freetds这个东西肯定不陌生. 配置相对也不复杂:
先到http://www.freetds.org/下载 源码包
$ cd /tmp
$ wgetftp://ftp.ibiblio.org/pub/Linux/ALPH...tds-stable.tgz
解压并安装
代码:
然后编译PHP
代码:
(也可以用 --with-sybase=/usr/local/freetds)
make 并 make install
代码:
配置freetds
代码:
找到类似的行
代码:
把他们前面的冒号删除,把host改为你的MSSQL服务器主机名或IP地址.port改为自己的端口号,
tds version是SQLserver的版本,2000的是7.0 要是其它的版本,自己查查.
注意: [MyServer70] 非常重要. 将会在PHP代码中代替 mssql_connect("host","sa",""); 中的 host
关于freetds的其它如 ODBC/tsql/ 配置,请参考http://www.freetds.org/userguide/
好了,完成后重启WEB服务. PHPINFO里看看,应该有如图的信息:
再用如下代码测试:
PHP 代码:
库和表存在并有数据.应该会返回正确的数据了.
如果有问题,查查配置文件是否正常,MSSQL服务器有没有开远程连接,防火墙等等.
到这里,MSSQL是可以用了.但感觉很不爽,PDO应该是PHP以后的标准.所以现在来搞定PDO-MSSQL:
因为有pdo-mysql配置经验,开始时我想当然的在编译PHP5时直接加参数--with-pdo-mssql=/usr/local/freetds
结果./configure时系统返回一个错误.
通过查看./configure --help 才知道,需要通过dblib来做.
代码:
重启apache 刷新phpinfo页面.多了这一项表示成功:
老习惯,代码验证:
PHP 代码:
输出正常..搞定!
可是linux下就不是那么简单的事情.
有过linux下读写MSSQL数据库经验的朋友,对于freetds这个东西肯定不陌生. 配置相对也不复杂:
先到http://www.freetds.org/下载 源码包
$ cd /tmp
$ wgetftp://ftp.ibiblio.org/pub/Linux/ALPH...tds-stable.tgz
解压并安装
代码:
$ tar zxvf freetds-stable.tgz $ ./configure --prefix=/usr/local/freetds $ make $ su root Password: $ make install
然后编译PHP
代码:
$cd ../php-5.2.5 $./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs .... 其它参数 --with-mssql=/usr/local/freetds
(也可以用 --with-sybase=/usr/local/freetds)
make 并 make install
代码:
$ make $ su root Password: # make install
配置freetds
代码:
# vim /usr/local/freetds/etc/freetds.conf
找到类似的行
代码:
# A typical Microsoft SQL Server 7.0 configuration ;[MyServer70] ; host = 192.168.0.1 ; port = 1433 ; tds version = 7.0
把他们前面的冒号删除,把host改为你的MSSQL服务器主机名或IP地址.port改为自己的端口号,
tds version是SQLserver的版本,2000的是7.0 要是其它的版本,自己查查.
注意: [MyServer70] 非常重要. 将会在PHP代码中代替 mssql_connect("host","sa",""); 中的 host
关于freetds的其它如 ODBC/tsql/ 配置,请参考http://www.freetds.org/userguide/
好了,完成后重启WEB服务. PHPINFO里看看,应该有如图的信息:
再用如下代码测试:
PHP 代码:
<?php $conn=mssql_connect("MyServer70","sa","password"); mssql_select_db('dbname',$conn); $msquery="select firstname,lastname from table"; $msresults=mssql_query($msquery); while ($row=mssql_fetch_array($msresults)) { echo "<li>". $row['titleofcourtesy'] ." ".$row['firstname'] ." ".$row['lastname'] ."</li>n"; } ?>
库和表存在并有数据.应该会返回正确的数据了.
如果有问题,查查配置文件是否正常,MSSQL服务器有没有开远程连接,防火墙等等.
到这里,MSSQL是可以用了.但感觉很不爽,PDO应该是PHP以后的标准.所以现在来搞定PDO-MSSQL:
因为有pdo-mysql配置经验,开始时我想当然的在编译PHP5时直接加参数--with-pdo-mssql=/usr/local/freetds
结果./configure时系统返回一个错误.
通过查看./configure --help 才知道,需要通过dblib来做.
代码:
$cd ../php-5.2.5
$./configure --prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
.... 其它参数
--enable-pdo
--with-pdo-sqlite
--with-pdo-mysql=/usr/local/mysql/bin/mysql_config
--with-mssql=/usr/local/freetds
--with-pdo-dblib=//usr/local/freetds$ make $ su root Password: # make install
重启apache 刷新phpinfo页面.多了这一项表示成功:
老习惯,代码验证:
PHP 代码:
<?php try { $hostname='192.168.0.1';//注意,这里和上面不同,要直接用IP地址或主机名 $port=1433;//端口 $dbname="dbname";//库名 $username="sa";//用户 $pw="password";//密码 $dbh= newPDO("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw"); } catch (PDOException $e) { echo"Failed to get DB handle: ".$e->getMessage() ."n"; exit; } echo'connent MSSQL succeed'; $stmt=$dbh->prepare("select firstname,lastname from table"); $stmt->execute(); while ($row=$stmt->fetch()) { print_r($row); } unset($dbh); unset($stmt); ?>
输出正常..搞定!
相关文章推荐
- 在linux上配置 PHP+PDO-MSSQL 心得
- 在linux上配置 PHP+PDO-MSSQL 心得
- linux下配置php扩展mssql
- linux lamp下 php配置php_pdo_mysql模块
- ThinkPHP3.0使用pdo方式连接sqlserver 2000、mssql 2000的配置,直接上配置文件,php版本是php5.2,服务器环境是ComsenzEXP
- linux编译安装mssql客户端和配置php连接mssql
- 深入分析PHP PDO配置及使用方法
- 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
- linux 的现有php 里安装mssql 免去重新编译的痛苦
- linux php配置ftp扩展
- Linux+Nginx+Apache+PHP+Mysql安装配置笔记
- Linux php/php-fpm 安装,配置
- Linux下PHP+MySQL+CoreSeek中文检索引擎配置
- Linux配置apache支持php
- PHP-FastCGI的配置和测试(linux下)
- Linux下Apache+Mysql+PHP的安装与配置
- linux下apache,mysq,lphp,Zend Optimizer的配置日志
- Linux+Apache+Mysql+PHP典型配置
- Linux下apache+phppgadmin+postgresql安装配置
- Linux安装配置php--搭建网站(4)