使用PHP访问MSSQL SERVER数据库小结
来源:互联网 发布:足球网游知乎 编辑:程序博客网 时间:2024/04/29 22:35
使用PHP访问MSSQL SERVER数据库小结
发布时间:2007-3-05 01:02 作者: maxy.feng 信息来源: PHPChina 开源社区门户
自学了两天PHP,感觉不错,昨晚突然头脑发热,准备给家里的医药销售软件做个功能扩展。那个软件买得旧了,做购货计划时,只能从库存页面一行一行的看(5000多行,眼都要看花),而且还不能对药品名称排序(它是按基本信息录入的时间顺序显示的),同名不同产地的是前面有显示,中间有显示,后面也有显示,经常是进了货,入库的时候才发现买重复了,其他产地的还有,数量还挺大,该买的却又没买。而且那软件还有连接限制(限制3台,局域网内共有四台,用一台作为服务器,放在办公室,当在服务器上做采购计划的时候,外边销售就只有两台能用)。
所以我想做一个“库存上下限报警表单”通过查询数据库自动生成,降低做采购计划时的工作量,同时绕过那个软件的连接限制。
那个软件用的是MSSQL SERVER 2000,我买的PHP书上讲的都是MySQL,在网上查了查,好少,下了PHP手册,翻译了几个小时的英文,终于能访问能用了,呵呵^_^。下面是我理解的一些用PHP访问MSSQL SERVER 2000的方法给大家探讨,交流一下。
1、首先是准备工作:
在Windows下通过PHP访问MSSQL SERVER 2000,可以有两种方式,
(1)利用COM
(2)一种是使用MSSQL_系列函数
要使用这两种都需要在php.ini进行设定:
(1)允许 DCOM,需要将php.ini中的 ;com.allow_dcom=TRUE前的分号";"去掉。
(2)使用MSSQL扩展,需要php.ini中的 ;extension=php_mssql.dll前的分号";"去掉。
(3)确认extension_dir为正确路径,以本机为例:extension_dir = "c:/AppServ/php5/ext"。
(4)如果仍然机器报错说找不到c:/AppServ/php5/ext/php_mssql.dll但明明存在这个文件。
解决方法:将php_mssql.dll,ntwdblib.dll拷贝到系统目录/system32下重启测试。。
(注:上面两个dll文件不在相同目录下,我的为c:/AppServ/php5/ext/php_mssql.dll;c:/AppServ/php5/ntwdblib.dll)
另外设置好了后记得重启服务器哦。
我的PHP环境是用AppServ搭建的,我这样做了后,访问MSSQL SERVER一切正常。若你仍然有问题,请查阅PHP手册php.ini的设置。
2、利用COM访问MSSQL SERVER的简单方法
$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
//首先声明一个连接对象
$connstr = "Provider=SQLOLEDB;
Persist Security Info=False;
User ID=youruid;
Password=yourpwd;
Initial Catalog=yourdatabase;
Data Source=127.0.0.1";
//设置连接字符串(很奇怪Data Soure为localhost或服务器名不行总是报错而为(local)或127.0.0.1却行,希望哪个高手帮我说明一下)
$conn->Open($connstr); //建立数据库连接
$sqlstr = "select * from test"; //设置查询字符串
$rs = $conn->Execute($sqlstr); //执行查询获得结果
或者
//$rs = new com("adodb.recordset"); //声明一个数据集对象
//$rs->open($sqlstr,$conn);//,3,3); //获得数据集rcordset内容
$num_cols = $rs->Fields->Count(); //得到数据集列数
while (!$rs->EOF) //输出结果
{
echo $rs->Fields['name']->Value."<BR>"; // 'name'为字段名,需要明确制定
$rs->MoveNext();
或者
//for ($i=0; $i < $num_columns; $i++)
//{
//echo $fld[$i]->value . "/t";
//}
//echo "/n";
//$rs->MoveNext();
}
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
3、使用MSSQL_函数访问MSSQL SERVER的简单方法
$hostname = "yourhoustname";
$username = "yourusername";
$password = "yourpassword";
$conn = mssql_connect($hostname,$username,$password) or die("DATABASE FAILED TO RESPOND.");
//建立连接
$dbName = "yourdatabase";
$ret=mssql_select_db($dbName); //选择数据库
$sqlstr = "select * from test"; //设置查询字符串
$result=mssql_query($query); //执行查询获得结果
while($line = mssql_fetch_row($result)) //输出结果
{
echo "$line[0],$line[1]";
//mssql_fetch_row每次返回一个enumerated(列举) array,直到没有数据而返回false
}
或者
//while($row = mssql_fetch_array($result))
//{
//echo $row["name"];
或者
//echo $row[0],$row[1];
//mssql_fetch_array每次返回一个数字索引数组或一个相关数组,直到没有数据而返回false
//}
题外:
关于通过PHP访问MSSQL SERVER的小结就是这些了。希望能对你有所帮助,第一次写又是初学,请你指出,共同进步。
求助:
1、我在设置连接字符串的时候,为什么Data Soure为localhost或服务器名不行总是报错而为(local)或127.0.0.1却行,希望哪个高手帮我说明一下
2、我在设置查询字符串的时候,如何对"LIKE '%-'"(单引号内为一个百分号和一个短横线)进行转义
[ 本帖最后由 maxy.feng 于 2007-3-5 17:40 编辑 ]
所以我想做一个“库存上下限报警表单”通过查询数据库自动生成,降低做采购计划时的工作量,同时绕过那个软件的连接限制。
那个软件用的是MSSQL SERVER 2000,我买的PHP书上讲的都是MySQL,在网上查了查,好少,下了PHP手册,翻译了几个小时的英文,终于能访问能用了,呵呵^_^。下面是我理解的一些用PHP访问MSSQL SERVER 2000的方法给大家探讨,交流一下。
1、首先是准备工作:
在Windows下通过PHP访问MSSQL SERVER 2000,可以有两种方式,
(1)利用COM
(2)一种是使用MSSQL_系列函数
要使用这两种都需要在php.ini进行设定:
(1)允许 DCOM,需要将php.ini中的 ;com.allow_dcom=TRUE前的分号";"去掉。
(2)使用MSSQL扩展,需要php.ini中的 ;extension=php_mssql.dll前的分号";"去掉。
(3)确认extension_dir为正确路径,以本机为例:extension_dir = "c:/AppServ/php5/ext"。
(4)如果仍然机器报错说找不到c:/AppServ/php5/ext/php_mssql.dll但明明存在这个文件。
解决方法:将php_mssql.dll,ntwdblib.dll拷贝到系统目录/system32下重启测试。。
(注:上面两个dll文件不在相同目录下,我的为c:/AppServ/php5/ext/php_mssql.dll;c:/AppServ/php5/ntwdblib.dll)
另外设置好了后记得重启服务器哦。
我的PHP环境是用AppServ搭建的,我这样做了后,访问MSSQL SERVER一切正常。若你仍然有问题,请查阅PHP手册php.ini的设置。
2、利用COM访问MSSQL SERVER的简单方法
$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
//首先声明一个连接对象
$connstr = "Provider=SQLOLEDB;
Persist Security Info=False;
User ID=youruid;
Password=yourpwd;
Initial Catalog=yourdatabase;
Data Source=127.0.0.1";
//设置连接字符串(很奇怪Data Soure为localhost或服务器名不行总是报错而为(local)或127.0.0.1却行,希望哪个高手帮我说明一下)
$conn->Open($connstr); //建立数据库连接
$sqlstr = "select * from test"; //设置查询字符串
$rs = $conn->Execute($sqlstr); //执行查询获得结果
或者
//$rs = new com("adodb.recordset"); //声明一个数据集对象
//$rs->open($sqlstr,$conn);//,3,3); //获得数据集rcordset内容
$num_cols = $rs->Fields->Count(); //得到数据集列数
while (!$rs->EOF) //输出结果
{
echo $rs->Fields['name']->Value."<BR>"; // 'name'为字段名,需要明确制定
$rs->MoveNext();
或者
//for ($i=0; $i < $num_columns; $i++)
//{
//echo $fld[$i]->value . "/t";
//}
//echo "/n";
//$rs->MoveNext();
}
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
3、使用MSSQL_函数访问MSSQL SERVER的简单方法
$hostname = "yourhoustname";
$username = "yourusername";
$password = "yourpassword";
$conn = mssql_connect($hostname,$username,$password) or die("DATABASE FAILED TO RESPOND.");
//建立连接
$dbName = "yourdatabase";
$ret=mssql_select_db($dbName); //选择数据库
$sqlstr = "select * from test"; //设置查询字符串
$result=mssql_query($query); //执行查询获得结果
while($line = mssql_fetch_row($result)) //输出结果
{
echo "$line[0],$line[1]";
//mssql_fetch_row每次返回一个enumerated(列举) array,直到没有数据而返回false
}
或者
//while($row = mssql_fetch_array($result))
//{
//echo $row["name"];
或者
//echo $row[0],$row[1];
//mssql_fetch_array每次返回一个数字索引数组或一个相关数组,直到没有数据而返回false
//}
题外:
关于通过PHP访问MSSQL SERVER的小结就是这些了。希望能对你有所帮助,第一次写又是初学,请你指出,共同进步。
求助:
1、我在设置连接字符串的时候,为什么Data Soure为localhost或服务器名不行总是报错而为(local)或127.0.0.1却行,希望哪个高手帮我说明一下
2、我在设置查询字符串的时候,如何对"LIKE '%-'"(单引号内为一个百分号和一个短横线)进行转义
[ 本帖最后由 maxy.feng 于 2007-3-5 17:40 编辑 ]
- 使用PHP访问MSSQL SERVER数据库小结
- PHP访问数据库代码(MSSQL版)
- Python例程:使用adodbapi访问MSSQL数据库
- Linux下php访问远程mssql server
- PHP访问MSSQL
- php连接mssql数据库
- MyEclipse使用SQL Explorer访问MSSQL命名实例数据库
- php使用 MsSql server时遇到的中文编码问题
- 使用SQLExplorer插件连接数据库(hsqldb,mssql server etc)
- php访问mssql基本代码
- PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
- MSsql 数据库服务器不能访问
- [MSSQL]跨数据库访问数据表
- 利用Javabean访问MSSQL数据库
- 利用servlet访问MSSQL数据库
- 利用Javabean访问MSSQL数据库
- PHP连接MSSQL Server类
- MSSQL Server 建立链接数据库
- C#计算时间差
- C语言——extern声明的总结
- UML关系与类的实现(个人观点)
- CString 与 char * 和 const char*的转换,以及在Unicode项目中的使用.
- 常用js函数收藏
- 使用PHP访问MSSQL SERVER数据库小结
- SSH中的Aop使用
- 记第一次网站入侵
- DDK 学习经验
- 讨厌放假
- 在多个无线网络中切换网络地址的批处理
- AnyMap推出最新的.shp格式转换工具了!
- 在Delphi 7 中用Indy开发Socket应用程序
- Linux学习进阶