为了能让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要简单,所以,当需要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 <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 ?>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|