当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP连接MSSQL方法汇总

PHP连接MSSQL方法汇总

2017年12月12日  | 移动技术网IT编程  | 我要评论

web培训,关于元旦的由来,二手房出售信息

 为了能让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("select top 1 id,username from tbname",$conn);
// 或者直接执行update,insert等语句,可以不用为返回结果赋值
mssql_query("update tbname set username='niunv' where id=1");

 4.获取记录集行数      

 echo mssql_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("insert into tbname(username) values ('nv')",$conn); 
  $rs = mssql_query("select @@identity as id",$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没有安装,很遗憾...   

  •   在web服务器上至少安装了mssql的客户端    
  •   打开php.ini把;extension=php_mssql.dll   前面的分号去掉  
  •       有必要话:需要制定extension_dir  
  •   推荐使用   php<=4.0.9     <=5.0.3目前   我还没有连接成功过4.010和   5.0.3  
  •   数据库的 连接分页可以到phpe.net上获取到相应的class   

  下面是我修改的 一个class   

 <?php 
 /** 
 *mssql 数据库连接类 
 **/ 
 class sql{ 
 
 var $server; 
 var $username; 
 var $password; 
 var $database; 
 
 var $linkid = 0; 
 var $queryresult; 
 var $lastinsertid; 
 
 var $pagenum = 0;//分页用---共有几条数据 
 var $er; 
 
 /** 
 *构造函数 
 **/ 
 function  sql($server='',$username='',$password='',$database=''){ 
 $this->server = $server; 
 $this->username = $username; 
 $this->password = $password; 
 $this->database = $database; 
 } 
 /** 
 *数据库连接 
 **/ 
 function db_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"; 
 return 0; 
 } 
 if (!mssql_select_db($this->database,$this->linkid)) { 
 $this->er = "mssql_select_db($this->database,$this->lastinsertid) error"; 
 return 0; 
 } 
 return $this->linkid; 
 } 
 
 /**public 
 *  function: check the database, if exist then select 
 *  exist: return 1 
 *  not exist: return 0 
 */ 
 function selectdatabase(){ 
 if(mssql_select_db($this->database)) 
 return 1; 
 else 
 return 0; 
 } 
 
 /** 
 *数据操作 
 **/ 
 function  query($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.没有操作成功,query error!!"; 
 return 0;//****************对于php 4.3.9以上版本的错误用1 
 } 
 return $this->queryresult; 
 } 
 
 /** 
 *数据获取 
 **/ 
 function fetch_array($result){ 
 if($result != "") $this->queryresult = $result; 
 $rec =mssql_fetch_array($this->queryresult); 
 
 if(is_array($rec)){ 
 return $rec; 
 
 } 
 
 //$this->er = "没有获取数据!"; 
 return 0; 
 } 
 
 /**public 
 *  function: free the query result 
 *  success return 1 
 *  failed: return 0 
 */ 
 function freeresult($result=""){ 
 if($result != "") $this->queryresult = $result; 
 return mssql_free_result($this->queryresult); 
 } 
   
 /** 
 *获取影响的的行数 
 *获取操作过的行数 
 **/ 
 function num_rows($result=""){ 
 if ($result != "") { 
 $this->queryresult = $result; 
 $row = mssql_num_rows($this->queryresult); 
 return $row; 
 } 
 } 
   
 /** 
 *获取查询结果---多个 
 **/ 
 function result_ar($str=''){ 
 if (empty($str)) { 
 return 0; 
 } 
 $back = array(); 
 $this->queryresult = $this->query($str); 
 
 while ($row = $this->fetch_array($this->queryresult)) { 
 $back[] = $row; 
 } 
 return $back; 
 } 
 
 /** 
 *数据库信息分页 
 *$result 数据库操作 
 *str ==sql语句  
 *page ==第几页 
 *shownum ==显示几页 
 */ 
 function page($str,$page=0,$shownum=5){ 
 $back = array();//返回数据 
 $maxnum = 0; 
 if ($str == "") { 
 $this->er = "没有数据"; 
 return  0; 
 } 
 $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页码 
 */ 
 function  page_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 = "<a href='".$web."?page=0&".$post."' target='_self'>首页<< </a>"; 
 } 
 if ($page !==1) { 
 $uppage =  "<a href='".$web."?page=".($page-1)."&".$post."' target='_self'>上一页</a>"; 
 }else { 
 $uppage = "上一页"; 
 } 
 if ($page < $pagenum) { 
 $downpage = "<a href='".$web."?page=".($page+1)."&".$post."' target='_self'>下一页</a>"; 
 }else { 
 $downpage = "下一页"; 
 } 
 if ($page == $pagenum) { 
 $foot = ">>尾页"; 
 }else { 
 $foot = "<a href='".$web."?page=".$pagenum."&".$post."' target='_self'> >>尾页</a>"; 
 } 
 
 $back = <<<eot 
 
 共 $pagenum 页    
 第 $page/$pagenum 页 $top   $uppage   $downpage    $foot 
 eot; 
 } 
 return $back; 
 } 
 }//end class 
 ?>

以上就是php连接mssql方法的总结,希望对大家的学习有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网