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绝对路径与相对路径之间关系的的分析
Mar 03 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 PHP
实例介绍PHP的Reflection反射机制
Aug 05 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
Oct 29 PHP
PHP二维数组去重实例分析
Nov 18 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 PHP
一文搞懂PHP中的抽象类和接口
May 25 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
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
Codeigniter检测表单post数据的方法
2015/03/21 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
js判断某个方法是否存在实例代码
2015/01/10 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python 通过pip安装Django详细介绍
2017/04/28 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
解决python 文本过滤和清理问题
2019/08/28 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
和平主题的演讲稿
2014/01/12 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
给孩子的新年寄语
2014/04/08 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
纪律委员竞选稿
2015/11/19 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
vue实现滑动解锁功能
2022/03/03 Vue.js