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

前端之家收集整理的这篇文章主要介绍了php连接mssql的一些相关经验及注意事项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

为了能让PHP连接MSsql,系统需要安装MSsql,PHP,且在PHP.ini中的配置中,将
;extension=PHP_mssql.dll前面的;去掉
1.连接MSsql
<div class="codetitle"><a style="CURSOR: pointer" data="73885" class="copybut" id="copybut73885" onclick="doCopy('code73885')"> 代码如下:

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

2.选择要连接的数据库
<div class="codetitle"><a style="CURSOR: pointer" data="65599" class="copybut" id="copybut65599" onclick="doCopy('code65599')"> 代码如下:
<div class="codebody" id="code65599">
mssql_select_db("dbname");

3.执行查询
<div class="codetitle"><a style="CURSOR: pointer" data="43573" class="copybut" id="copybut43573" onclick="doCopy('code43573')"> 代码如下:
<div class="codebody" id="code43573">
$rs=mssql_query("selecttop1id,usernamefromtbname",$conn);
或者直接执行update,insert等语句,可以不用为返回结果赋值
mssql_query("updatetbnamesetusername='niunv'whereid=1");

4.获取记录集行数
<div class="codetitle"><a style="CURSOR: pointer" data="83094" class="copybut" id="copybut83094" onclick="doCopy('code83094')"> 代码如下:
<div class="codebody" id="code83094">
echomssql_num_rows($rs);

5.获取记录集
<div class="codetitle"><a style="CURSOR: pointer" data="64531" class="copybut" id="copybut64531" onclick="doCopy('code64531')"> 代码如下:<div class="codebody" id="code64531">
if($row=mssql_fetch_array($rs))
{
$id=$row[0];//获取ID字段值
$username=$row[1];//获取username字段值
}

6.获取新增记录的ID
将id字段设置为IDENTITY字段,执行insert语句以后,就会产生一个@@IDENTITY全局变量值,查询出来就是最后一条新增记录的ID了.
<div class="codetitle"><a style="CURSOR: pointer" data="46777" class="copybut" id="copybut46777" onclick="doCopy('code46777')"> 代码如下:<div class="codebody" id="code46777">
mssql_query("insertintotbname(username)values('nv')",$conn);
$rs=mssql_query("select@@IDENTITYasid",$conn);
if($row=mssql_fetch_array($rs))
{
echo$row[0];
}

7.释放记录集
<div class="codetitle"><a style="CURSOR: pointer" data="73481" class="copybut" id="copybut73481" onclick="doCopy('code73481')"> 代码如下:<div class="codebody" id="code73481">
mssql_free_result($rs);

8.关闭连接
<div class="codetitle"><a style="CURSOR: pointer" data="93371" class="copybut" id="copybut93371" onclick="doCopy('code93371')"> 代码如下:<div class="codebody" id="code93371">
mssql_close($conn);

注:用PHP操作MSsql比在ASP连接MysqL要简单,所以,当需要MSsqlMysqL并存时,用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
<div class="codetitle"><a style="CURSOR: pointer" data="60259" class="copybut" id="copybut60259" onclick="doCopy('code60259')"> 代码如下:<div class="codebody" id="code60259">
<?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->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'>首页<<";
}
if($Page!==1){
$upPage="<ahref='".$web."?page=".($Page-1)."&".$Post."'target='_self'>上一页";
}else{
$upPage="上一页";
}
if($Page<$pageNum){
$downPage="<ahref='".$web."?page=".($Page+1)."&".$Post."'target='_self'>下一页";
}else{
$downPage="下一页";
}
if($Page==$pageNum){
$foot=">>尾页";
}else{
$foot="<ahref='".$web."?page=".$pageNum."&".$Post."'target='_self'>>>尾页";
}
$back=<<<EOT
共$pageNum页
第$Page/$pageNum页$top$upPage$downPage$foot
EOT;
}
return$back;
}
}//endclass
?>

猜你在找的PHP相关文章