php mssql 调用odbc,[转载]php连接mssql(mssql_connect 和odbc方式)

首先是mssql_connect方式,这种方式比较方便,但是可能会遇到服务器没有安装mssql模块的情况。

$ms_host = "192.168.0.xx"; //主机

$ms_user = "sa"; //用户名

$ms_pass = "aa"; //密码

$ms_data = "test"; //MSSQL库名

$ms_connect = mssql_connect($ms_host, $ms_user, $ms_pass)

or die("Couldn't connect to SQL Server on

$$ms_host");

$ms_select = mssql_select_db($ms_data, $ms_connect)

or die("Couldn't open database

$ms_select");

$update

= "SELECT reportid

FROM ReportInfo

WHERE (report_goods_id =

'$id') ;";

$result = mssql_query($update);

return $result;

报错可能是:

(1) Call to undefined function

mssql_connect() :这是因为没有开启mssql模块。

①在php.ini中找到:

extension=php_mssql.dll,和extension=php_pdo_mssql.dll,确定他们的前面没有“;”。

②在php.ini中找到:

extension_dir = "C:phpext"。这里是extension目录,确认这个目录下有php_mssql.dll、php_pdo_mssql.dll。

③php.ini的位置,extension_dir的位置可以使用phpinfo()查看。

(2)mssql_connect() : Unable

to connect to server: 192.168.0.xx:连接失败,最可能是的是没有开启mssql的远程连接。这里有具体的开启方法。http://tech.ccidnet.com/art/1106/20090225/1689795_1.html

当然,我的情况是这样设置了以后还是不能连接,后来我注意到我的服务器上有一个运行的图标,而那台虽然开启了远程连接,而且用SQL

Server Management

Studio也可以正常连接的服务器则没有这个图标,也许是这个原因。具体是什么情况改天问一下mssql的专家们。a4c26d1e5885305701be709a3d33442f.png

因为另一台服务器是iis的,没有安装php的mssql模块,所以我采用odbc的连接方式,代码如下:

$ms_host = "test"; //这里是ODBC的连接名称

$ms_user = "test"; //用户名

$ms_pass = "test123"; //密码

$ms_connect =odbc_connect($ms_host, $ms_user, $ms_pass) or die("Couldn't connect to SQL Server on

MSSQL");

在那台服务器上建立一个odbc连接,具体操作是:

①打开控制面板-管理工具-数据源 (ODBC)-“系统DSN”的选项卡,点击“添加”,在“创建新数据源”中选择“SQL Native

Client”。

②填入数据库基本资料,因为是本地数据库,所以填写(local)

a4c26d1e5885305701be709a3d33442f.png

③创建数据源。建议选择“使用用户输入登录ID和密码的SQL server验证”,这样可以限制用户的操作权限。

a4c26d1e5885305701be709a3d33442f.png

④选择“默认数据库”,链接完成。

a4c26d1e5885305701be709a3d33442f.png

因为php手册上写的OBDC链接代码加载了ODBC Driver,但其实在win平台服务器下只需要直接输入实例名就可以了。手册上mssql_connect函数,在servername函数上使用了

name>的格式,但其实只要直接填写ip地址(除非特殊情况否则不需要端口号),因为手册的缘故浪费了我不少时间…希望看到这篇博文的朋友不要走这些弯路…总之这php连接mssql数据库有点麻烦,因为微软的软件体积都很大,一个数据库加上工具包都有1G以上了,还是习惯mysql的小巧和简单的命令界面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值