免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7214 | 回复: 7
打印 上一主题 下一主题

[FreeBSD] freebsd下PHP连接Microsoft SQLServer的办法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-21 10:37 |只看该作者 |倒序浏览
本人的系统配置:freebsd 4.9
                        apache 2.48
                        php 4.3.4
                        freetds 0.62.3
一、相关软件

freetds 来源:
官方网站  
http://www.freetds.org/
freetds0.62.3.tar.gz
http://gd.tuwien.ac.at/visual/ibiblio/ALPHA/freetds/stable/

或者在gogole上搜索.

这个软件能够用Linux和Unix连接MS SQLServer和Sybase数据库。

二、安装配置步骤
第一步:编译安装freetds:
tar zxvf freetds-0.62.3.tar.gz(解压)
./configure –prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
make
make install

第二步:重新编译PHP4
./configure [--with-apxs... --with-mysql...] ---enable-dbx(可选)  
--with-mssql=/usr/local/freetds
make
make install


第三步:配置freetds
ee /usr/local/freetds/etc/freetds.conf
去掉相关的注释
# A typical Microsoft SQL Server 2000 configuration
[MyServer2k]
       host = 192.168.101.2  (你的SQLServer机器名字或者IP地址)
       port = 1433
       tds version = 8.0

在这个配置文件中可以配置Windows域登陆或者SQLServer账号登陆两种方式
用phpinfo(),可以查看到如下信息:
mssql
MSSQL Support enabled
Active Persistent Links  0  
Active Links  0  
Library version  7.0  

Directive Local Value Master Value
mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.compatability_mode Off Off
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unlimited Unlimited
mssql.max_procs 25 25
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Off Off
mssql.textlimit Server default Server default
mssql.textsize Server default Server default
mssql.timeout 60 60

第五步:在php中建立数据库连接

<?php
$link = dbx_connect (mssql, "服务器", "数据库名", "用户", "密码"
            or die ("Could not connect";
print("Connected successfully";

dbx_close($link);
?>;

或者
<?php
$link=mssql_connect("sqlserver",$your_username,$your_password) or die (“can’t Connect to Database”);
echo $link;
?>;

在浏览器中运行上面脚本, 如果你得到一个link号那么恭喜,你已经配置好了,如果出现Call to undefined function: mssql_connect() 那说明仔细看上面的安装配置过程看你哪一步没有对。
注意:sqlserver名称是在/usr/local/freetds/etc/freetds.conf中定义的host参数,如果你写的IP地址,就是IP地址。
第六步:调试
如果出现不能连接,请在freetds配置文件中找到;dump file = /tmp/freetds.log这一行,注释掉前面的分号,再执行一下测试脚本,察看/tmp/freetds.log文件,它可以告诉你很多出错的信息帮助你排除问题。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-05-21 11:07 |只看该作者

freebsd下PHP连接Microsoft SQLServer的办法

这还是dbx出现数年以来我第一次看到有人用dbx咧呵呵,怎么样dbx好用不?一直没机会试过
好久不作php编程了,我还真没试过
如果从unix上直接连接sql server是不能连接的么?我本来以为只要建个连接就可以了:(原来还要装个软件

论坛徽章:
0
3 [报告]
发表于 2004-05-21 14:27 |只看该作者

freebsd下PHP连接Microsoft SQLServer的办法

[quote]原帖由 "quakelee"]本来以为只要建个连接就可以了:(原来..........[/quote 发表:


怎么建联结?

开个玩笑

freetds还是很不错的......

论坛徽章:
0
4 [报告]
发表于 2004-05-22 02:30 |只看该作者

freebsd下PHP连接Microsoft SQLServer的办法

原帖由 "mzp" 发表:

freetds还是很不错的......


没错。以前的版本还有些 bug (有些 bug 其实是功能的不完整),我想现在的版本应该好多了。

论坛徽章:
0
5 [报告]
发表于 2004-06-06 14:07 |只看该作者

freebsd下PHP连接Microsoft SQLServer的办法

搂主,我的情况和你差不多,我要在linux下访问sql server 2000
我在linux编译好了freetds,但用tsql执行select语句,中文全变成"?"

[root@backup bin]# ./tsql -Usa -SZXPCS
locale is "en_US"
locale charset is "ISO-8859-1"
Password:
Msg 2403, Level 16, State 0, Server OpenClient, Line 0
WARNING! Some character(s) could not be converted into client's character set. U
nconverted bytes were changed to question marks ('?').
Msg 5703, Level 0, State 1, Server JATELE, Line 0
Changed language setting to us_english.
1>; quit

请问楼主碰到类似的问题吗?

谢谢先

论坛徽章:
0
6 [报告]
发表于 2004-07-23 13:57 |只看该作者

freebsd下PHP连接Microsoft SQLServer的办法

我也是要访问局域网内的mssql 2000,可我安装了freetds 0.62.4也没办法连上mssql2k,就是报mssql_connect函数错,另外我执行 freetds/bin/tsql 命令,系统说 command not found

论坛徽章:
0
7 [报告]
发表于 2006-02-26 22:20 |只看该作者
我以前做过,不过是用c开发的。

论坛徽章:
0
8 [报告]
发表于 2006-02-27 13:18 |只看该作者

回复 5楼 zhengzeng 的帖子

还是字符集的问题吧,utf8看看?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP