资讯专栏INFORMATION COLUMN

Linux下PHP支持MSSql的配置

张春雷 / 1122人阅读

摘要:下面程序员雷雪松就详细的看看下如何配置支持下载并安装,是一套为和允许程序来跟微软和数据库交互的动态库。注意的路径重启查看已经安装的扩展这样扩展就安装完成了,就可以使用相关函数操作数据库了。原文来源程序员雷雪松的个人博客

因为项目以前的数据库为SQLServer(MSSql),客户希望不要换数据库。在当今客户就是上帝的理念下,于是只能采用Linux下PHP操作MSSql。由于之前没什么经验,甚至可以说是第一次。于是在网上找了很多Linux下PHP配置MSSql的资料,其中不得不说错误太多,自己做了很多实验,最终还是完美的解决PHP支持MSSql的问题。下面PHP程序员雷雪松就详细的看看Linux下如何配置PHP支持MSSql?

1、下载并安装freetds,freetds是一套为UNIX和Linux允许程序来跟微软SQL Server和Sybase数据库交互的动态库。
[root@PHP ~]# wget ftp://ftp.freetds.org/pub/freetds/curren...
[root@PHP ~]# tar -zxvf freetds-current.tar.gz
[root@PHP ~]# cd freetds-dev.0.99.633/
[root@PHP freetds-dev.0.99.633]# ./configure --prefix=/usr/local/freetds --with-tdsver=7.3--enable-msdblib --enable-dbmfix
[root@PHP freetds-dev.0.99.633]# make && make Install
[root@IM freetds-dev.0.99.633]# /usr/local/freetds/bin/tsql -H mssql数据库地址 -p 端口 -U 用户名-P 密码

locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> use test; #选择数据库
2> go #提交才会执行
1> select * from user #查询user表
2> go #提交才会执行
1> quit
2、PHP有两种方式操作MSSql,一种通过PHP中MSSql扩展中的MSSql相关函数,一种是通过PHP中pdo_dblib扩展通过pdo的方式操作MSSql。下面分别讲解下安装PHP mssql扩展和pdo_dblib扩展以及各自的用法。
a、安装PHP mssql扩展。
[root@PHP ~]# cd /php-5.6.18/ext/mssql/
[root@IM mssql]# phpize
[root@IM mssql]# ./configure --with-php-config=/usr/local/bin/php-config --with-mssql=/usr/local/freetds
[root@IM mssql]# make && make install
[root@IM mssql]# vi php.ini
extension=mssql.so #注意mssql.so的路径
[root@IM mssql]# /usr/local/apache/bin/httpd -k restart #重启apache
[root@IM mssql]# php -m #查看已经安装的mssql扩展
这样MSSql扩展就安装完成了,就可以使用mssql相关函数操作MSSql数据库了。
$conn = mssql_connect("ip地址:端口", "用户名", "密码");
//测试连接
if ($conn) {
echo "连接成功";
}
b、安装pdo_dblib扩展
[root@PHP ~]# cd /usr/php-5.5.28/ext/pdo_dblib/
[root@IM pdo_dblib]# phpize
[root@IM pdo_dblib]# ./configure --with-php-config=/usr/local/bin/php-config --with-pdo-dblib=/usr/local/freetds/
[root@IM pdo_dblib]# make && make install
[root@IM pdo_dblib]# vi php.ini
extension=pdo_dblib.so #注意pdo_dblib.so的路径
[root@IM pdo_dblib]# /usr/local/apache/bin/httpd -k restart #重启apache
[root@IM pdo_dblib]# php -m #查看已经安装的pdo_dblib扩展
这时候就可以通过pdo的函数操作MSSql数据库了。

$dsn = "dblib:host=ip地址:端口;dbname=$dbname";
$user = "dbuser";
$password = "dbpass";
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
下面附上ThinkPHP3.2中操作MSSql的配置文件conf.php:
return array(
//"配置项"=>"配置值"
"DB_TYPE" => "sqlsrv", // 数据库类型
"DB_USER" => "", // 用户名
"DB_PWD" => "", // 密码
"DB_PORT" =>"", // 端口
"DB_PREFIX" => "", // 数据库表前缀
"DB_DSN"=> "dblib:host=IP地址:端口;dbname=数据库名称",
"DB_CHARSET" => "utf8", // 字符集
);
在ThinkPHP3.2中如果支持MSSql,还得修改ThinkPHP驱动文件的连接参数,否则会报错’Undefined class constant ‘PDO::SQLSRV_ATTR_ENCODING’。具体的操作办法为:将ThinkPHPLibraryThinkDbDriverSqlsrv.class.php中第26行’PDO::SQLSRV_ATTR_ENCODING => PDO::SQLSRV_ENCODING_UTF8,’注释掉即可。ThinkPHP数据库操作MSSql时,如果原表名是USER,如果你写为M(‘USER’),那么ThinkPHP变为U_S_E_R。所以在ThinkPHP操作MSSql表明一定要小写。
原文来源:PHP程序员,雷雪松的个人博客--http://www.leixuesong.cn/1920

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21495.html

相关文章

  • Linux一键配置工具ezhttp

    摘要:简介是一个一键配置工具,采用脚本语言编写。支持自动配置环境,以前提供各种其它的配置工具,如自动配置配置等。网络问题断开安装过程中由于网络原因导致终端断开,默认使用安装,可以使用命令恢复终端。 简介 ezhttp是一个Linux一键配置工具,采用bash脚本语言编写。支持自动配置LAMP,LNMP,LNAMP环境,以前提供各种其它的配置工具,如自动配置swap,配置iptables等。项...

    netScorpion 评论0 收藏0
  • Linux一键配置工具ezhttp

    摘要:简介是一个一键配置工具,采用脚本语言编写。支持自动配置环境,以前提供各种其它的配置工具,如自动配置配置等。网络问题断开安装过程中由于网络原因导致终端断开,默认使用安装,可以使用命令恢复终端。 简介 ezhttp是一个Linux一键配置工具,采用bash脚本语言编写。支持自动配置LAMP,LNMP,LNAMP环境,以前提供各种其它的配置工具,如自动配置swap,配置iptables等。项...

    qiangdada 评论0 收藏0
  • 盘点 PHP 和 ASP.NET 10大对比!

    摘要:谷歌,,,雅虎和最近因世界杯获得庞大观众数量的都在使用。因此,数据库服务器的能力是毋庸置疑的。微软的服务器,服务器以及未来的更新价格昂贵。更依赖于微软数量有限的开发者做出的改进和更新。 【编者按】本文主要针对开源 PHP 和非开源的 ASP.NET 在性能、成本、可扩展性,技术支持和复杂性等方面进行比较。 在网上论坛,总是有成百上千的文章和帖子在讨论 PHP 和 ASP.NET,究竟谁...

    hosition 评论0 收藏0
  • 盘点 PHP 和 ASP.NET 10大对比!

    摘要:谷歌,,,雅虎和最近因世界杯获得庞大观众数量的都在使用。因此,数据库服务器的能力是毋庸置疑的。微软的服务器,服务器以及未来的更新价格昂贵。更依赖于微软数量有限的开发者做出的改进和更新。 【编者按】本文主要针对开源 PHP 和非开源的 ASP.NET 在性能、成本、可扩展性,技术支持和复杂性等方面进行比较。 在网上论坛,总是有成百上千的文章和帖子在讨论 PHP 和 ASP.NET,究竟谁...

    neroneroffy 评论0 收藏0
  • macphp 连接 mssql 竟然如此简单

    摘要:原来全部手动下载解压编译的时代过去了,曾经的我为了安装个用去连接花费了两个晚上,这次又要安装新的开发环境,有一些数据需要连接,原以为又要来一遍,但是有了以后,一切简单到爆。 原来全部手动下载解压编译的时代过去了,曾经的我为了安装个freetds 用ODBC去连接mssql花费了两个晚上,这次又要安装新的开发环境,有一些数据需要连接sqlserver,原以为又要来一遍,但是有了brew以...

    mindwind 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<