PHP连接MSSQL方法汇总


Posted in PHP onFebruary 05, 2016

 为了能让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方法的总结,希望对大家的学习有所帮助。

PHP 相关文章推荐
模仿OSO的论坛(四)
Oct 09 PHP
关于php mvc开发模式的感想
Jun 28 PHP
PHP里的中文变量说明
Jul 23 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
深入php常用函数的使用汇总
Jun 08 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
php实现的单一入口应用程序实例分析
Sep 23 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 PHP
Symfony2开发之控制器用法实例分析
Feb 05 #PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 #PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 #PHP
twig模板获取全局变量的方法
Feb 05 #PHP
twig里使用js变量的方法
Feb 05 #PHP
Symfony2安装第三方Bundles实例详解
Feb 04 #PHP
Symfony2使用第三方库Upload制作图片上传实例详解
Feb 04 #PHP
You might like
基于php使用memcache存储session的详解
2013/06/25 PHP
php面向对象值单例模式
2016/05/03 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
PHP递归的三种常用方式
2019/02/28 PHP
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
深入理解python对json的操作总结
2017/01/05 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
JD Sports德国官网:英国领先的运动鞋和运动服饰零售商
2018/02/26 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
艺人经纪人岗位职责
2014/04/15 职场文书
教师辞职信范文
2015/02/28 职场文书
七一活动主持词
2015/06/29 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
Python+Appium实现自动抢微信红包
2021/05/21 Python
Java后台生成图片的完整步骤
2021/08/04 Java/Android