php连接mssql的一些相关经验及注意事项


Posted in PHP onFebruary 05, 2013

为了能让PHP连接MSSQL,系统需要安装MSSQL,PHP,且在PHP.ini中的配置中,将
;extension=php_mssql.dll前面的;去掉
1.连接MSSQL

$conn=mssql_connect("实例名或者服务器IP","用户名","密码"); 
//测试连接 
if($conn) 
{ 
echo"连接成功"; 
}

2.选择要连接的数据库
mssql_select_db("dbname");

3.执行查询
$rs=mssql_query("selecttop1id,usernamefromtbname",$conn); 
或者直接执行update,insert等语句,可以不用为返回结果赋值 
mssql_query("updatetbnamesetusername='niunv'whereid=1");

4.获取记录集行数
echomssql_num_rows($rs);

5.获取记录集
if($row=mssql_fetch_array($rs)) 
{ 
$id=$row[0];//获取ID字段值 
$username=$row[1];//获取username字段值 
}

6.获取新增记录的ID
将id字段设置为IDENTITY字段,执行insert语句以后,就会产生一个@@IDENTITY全局变量值,查询出来就是最后一条新增记录的ID了.
mssql_query("insertintotbname(username)values('nv')",$conn); 
$rs=mssql_query("select@@IDENTITYasid",$conn); 
if($row=mssql_fetch_array($rs)) 
{ 
echo$row[0]; 
}

7.释放记录集
mssql_free_result($rs);

8.关闭连接
mssql_close($conn);

注:用PHP操作MSSQL比在ASP连接MYSQL要简单,所以,当需要MSSQL与MYSQL并存时,用PHP连接MSSQL来操作MYSQL与MSSQL并存比较简单好用.如果是ASP连接MYSQL,需要安装一个MYSQL驱动,默认windows的ODBC没有安装,很遗憾...
1.在web服务器上至少安装了mssql的客户端
2.打开php.ini把;extension=php_mssql.dll前面的分号去掉
有必要话:需要制定extension_dir
3.推荐使用php<=4.0.9<=5.0.3目前我还没有连接成功过4.010和5.0.3
4.数据库的连接分页可以到phpe.net上获取到相应的class
下面是我根据那里修改的一个class
<?php 
/** 
*mssql数据库连接类 
**/ 
classSQL{ 
var$server; 
var$userName; 
var$passWord; 
var$dataBase; 
var$linkID=0; 
var$queryResult; 
var$lastInsertID; 
var$pageNum=0;//分页用---共有几条数据 
var$ER; 
/** 
*构造函数 
**/ 
functionSQL($Server='',$UserName='',$PassWord='',$DataBase=''){ 
$this->server=$Server; 
$this->userName=$UserName; 
$this->passWord=$PassWord; 
$this->dataBase=$DataBase; 
} 
/** 
*数据库连接 
**/ 
functiondb_connect(){ 
$this->linkID=mssql_pconnect($this->server,$this->userName,$this->passWord); 
if(!$this->linkID){ 
$this->ER="db_connect($this->server,$this->userName,$this->passWord)error"; 
return0; 
} 
if(!mssql_select_db($this->dataBase,$this->linkID)){ 
$this->ER="mssql_select_db($this->dataBase,$this->lastInsertID)error"; 
return0; 
} 
return$this->linkID; 
} 
/**public 
*function:Checkthedatabase,ifexistthenselect 
*exist:return1 
*notexist:return0 
*/ 
functionselectDatabase(){ 
if(mssql_select_db($this->dataBase)) 
return1; 
else 
return0; 
} 
/** 
*数据操作 
**/ 
functionquery($Str){ 
if($this->linkID==0){ 
$this->ER="数据库还没有连接!!"; 
} 
$this->queryResult=mssql_query($Str); 
//$this->queryResult=mssql_query($Str,$this->linkID); 
if(!$this->queryResult){ 
$this->ER="$Str.没有操作成功,queryerror!!"; 
return0;//****************对于php4.3.9以上版本的错误用1 
} 
return$this->queryResult; 
} 
/** 
*数据获取 
**/ 
functionfetch_array($result){ 
if($result!="")$this->queryResult=$result; 
$rec=mssql_fetch_array($this->queryResult); 
if(is_array($rec)){ 
return$rec; 
} 
//$this->ER="没有获取数据!"; 
return0; 
} 
/**public 
*function:FreetheQueryResult 
*successreturn1 
*failed:return0 
*/ 
functionfreeResult($result=""){ 
if($result!="")$this->queryResult=$result; 
returnmssql_free_result($this->queryResult); 
} 
/** 
*获取影响的的行数 
*获取操作过的行数 
**/ 
functionnum_rows($result=""){ 
if($result!=""){ 
$this->queryResult=$result; 
$row=mssql_num_rows($this->queryResult); 
return$row; 
} 
} 
/** 
*获取查询结果---多个 
**/ 
functionresult_ar($str=''){ 
if(empty($str)){ 
return0; 
} 
$back=array(); 
$this->queryResult=$this->query($str); 
while($row=$this->fetch_array($this->queryResult)){ 
$back[]=$row; 
} 
return$back; 
} 
/** 
*数据库信息分页 
*$Result数据库操作 
*str==sql语句 
*page==第几页 
*showNum==显示几页 
*/ 
functionpage($Str,$Page=0,$ShowNum=5){ 
$back=array();//返回数据 
$maxNum=0; 
if($Str==""){ 
$this->ER="没有数据"; 
return0; 
} 
$this->queryResult=$this->query($Str); 
if($this->queryResult){ 
if($Page==""){ 
$nopa=0; 
}else{ 
$nopa=($Page-1)*$ShowNum; 
if($nopa<0){ 
$nopa=0; 
} 
} 
$maxNum=$this->num_rows($this->queryResult); 
$k=0; 
$i=0; 
$dd=$this->fetch_array($this->queryResult); 
while($dd&&$nopa<=$maxNum&&$i<$ShowNum){ 
if($nopa>=$maxNum)$nopa=$maxNum; 
mssql_data_seek($this->queryResult,$nopa); 
$row=$this->fetch_array($this->queryResult); 
$nopa++; 
$i++; 
$back[]=$row; 
if($nopa>=$maxNum){ 
break; 
} 
} 
} 
$this->pageNum=$maxNum; 
return$back; 
} 
/** 
*分页的html页码 
*/ 
functionpage_html($DataNum=0,$Page=1,$ShowNum=3,$web,$Post=''){ 
if($DataNum==0){ 
$back="没有要查询的数据"; 
}else{ 
if($ShowNum<=0){ 
$ShowNum=3; 
} 
if($Page<=0){ 
$Page=1; 
} 
if(empty($web)){ 
$web="#"; 
} 
$pageNum=ceil($DataNum/$ShowNum); 
if($Page<=1){ 
$top="首页<<"; 
}else{ 
$top="<ahref='".$web."?page=0&".$Post."'target='_self'>首页<<</a>"; 
} 
if($Page!==1){ 
$upPage="<ahref='".$web."?page=".($Page-1)."&".$Post."'target='_self'>上一页</a>"; 
}else{ 
$upPage="上一页"; 
} 
if($Page<$pageNum){ 
$downPage="<ahref='".$web."?page=".($Page+1)."&".$Post."'target='_self'>下一页</a>"; 
}else{ 
$downPage="下一页"; 
} 
if($Page==$pageNum){ 
$foot=">>尾页"; 
}else{ 
$foot="<ahref='".$web."?page=".$pageNum."&".$Post."'target='_self'>>>尾页</a>"; 
} 
$back=<<<EOT 
共$pageNum页   
第$Page/$pageNum页$top $upPage $downPage $foot 
EOT; 
} 
return$back; 
} 
}//endclass 
?>
PHP 相关文章推荐
基于PHP+MySQL的聊天室设计
Oct 09 PHP
php购物车实现方法
Jan 03 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
php中执行系统命令的方法
Mar 21 PHP
了解PHP的返回引用和局部静态变量
Jun 04 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
Dec 19 PHP
PHP7匿名类用法分析
Sep 26 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 PHP
用php随机生成福彩双色球号码的2种方法
Feb 04 #PHP
php获取服务器信息的实现代码
Feb 04 #PHP
关于PHP实现异步操作的研究
Feb 03 #PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 #PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 #PHP
php处理文件的小例子(解压缩,删除目录)
Feb 03 #PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 #PHP
You might like
深入array multisort排序原理的详解
2013/06/18 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
JavaScript继承方式实例
2010/10/29 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
浅谈VUE中演示v-for为什么要加key
2020/01/16 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
由面试题加深对Django的认识理解
2019/07/19 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
Python如何在bool函数中取值
2020/09/21 Python
用python制作个音乐下载器
2021/01/30 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
集团公司人力资源部岗位职责
2014/01/03 职场文书
商务考察邀请函范文
2014/01/21 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
小班上学期个人总结
2015/02/12 职场文书
广告业务员岗位职责
2015/02/13 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
埃及王子观后感
2015/06/16 职场文书
初中语文教学随笔
2015/08/15 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
员工工作心得体会
2019/05/07 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL