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 相关文章推荐
php设计模式 Observer(观察者模式)
Jun 26 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 PHP
CI(CodeIgniter)框架配置
Jun 10 PHP
php上传图片之时间戳命名(保存路径)
Aug 15 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
Dec 23 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
php优化查询foreach代码实例讲解
Mar 24 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
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
javascript第一课
2007/02/27 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
Python中pass的作用与使用教程
2020/11/13 Python
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
年度安全生产目标责任书
2014/07/23 职场文书
高一军训的心得体会
2014/09/01 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
导游词之无锡东林书院
2019/12/11 职场文书