PHP连接MSSQL方法汇总_php技巧

 为了能让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
mssql
phpexcel常用方法汇总、php mssql、php连接mssql、php mssql.dll、php mssql 扩展,以便于您获取更多的相关知识。

时间: 2024-08-18 07:13:32

PHP连接MSSQL方法汇总_php技巧的相关文章

PHP生成短网址方法汇总_php技巧

正常的网址带上参数的那种可能会很长,尤其是我们在印刷纸质品如企业宣传册中要印上某个长的url的话非常难看,而且也没几个人会去记这个网址,虽然现在可以用扫二维码的方式打开长网址.但是人们可以使用短网址来实现优美的链接,尤其是有字数限制的应用如微博. 短网址的实现原理就是有一个数据表会配置文件将短网址和实际网址进行对应,当请求某个短网址时,程序跳转到对应的实际网址上去,从而实现网址的访问. 方案1:PHP+MySQl实现短网址的生成和读取 常规的方案我们将生成好的短网址和原网址对应到一张数据表中,然

php中的常用魔术方法汇总_php技巧

这篇文章详细的对php中的常用魔术方法进行了整理归纳,分享给大家供大家参考,具体内容如下 1.PHP把所有"__"开头的方法当做魔术方法,所以任何自定义的方法都不能是"__"开头 php提供的重载,是指动态的创建属性或方法.重载是通过魔术方法来实现的.这些魔术方法的参数不能饮用传递,__get(),__set(),__isset(),__unset(),实现类属性重载. 2.当访问类中不可访问的属性时,将调用__get()方法 3.当访问类中不可访问的属性时,根据不

php将数组存储为文本文件方法汇总_php技巧

php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件.那么如何使用 php 将数组保存为文本格式的文件呢?下面分享三种方法实现将 php 数组写入到文件以缓存数组.(1)利用serialize 将数组序列化存储为文本文件,调用时候再使用unserialize 还原 <?php $file='./cache/phone.php'; $array=array('color'=> array('blue','red',

PHP获取当前文件的父目录方法汇总_php技巧

方法一:先获得当前文件所在文件夹的长度,然后用substr来截取掉该长度: 复制代码 代码如下:  $dirName = str_replace("\\", "/", dirname(__FILE__));  $dirNameLength = strlen($dirName);  $currentDirNameLength = $dirNameLength - strrpos($dirName,"/"); //获得当前文件所在文件夹的长度!  $

php中出现空白页的原因及解决方法汇总_php技巧

很多程序员在进行php开发的时候都遇到过出现空白页的请,综合分析来说,在php编程中出现空白页面可能是由以下几个原因造成的: 1.逻辑错误 逻辑错误是最难排除的,从表面上看,也许代码是合法的,是正规的,可运行起来却不是预料之中的.为什么呢?也许是编写者想得不够全面,毕竟人是人,计算机是计算机,计算机不可能完全按照人的思路去运行脚本.在这里,我告诉大家一个比较好的调试方法,就是使用注释符"/* */",注释掉一些代码,观察运行情况,以此来逐个排除错误,最终找到错误代码的位置.这种情况下要

php获取根域名方法汇总_php技巧

本文实例汇总了php获取根域名方法,分享给大家供大家参考.具体实现方法如下: 如果你只简单获取当前访问你页面的域名,我们只需要使用php中的函数HTTP_HOST就可以搞定了,如果是提取url根域名是需要正则的,下面就来看看几个具体实例. 如果是获取当前域名是非常的简单的: 复制代码 代码如下: <?php //获取当前的域名: echo $_SERVER['SERVER_NAME']; //获取来源网址,即点击来到本页的上页网址 echo $_SERVER["HTTP_REFERER&q

PHP对表单提交特殊字符的过滤和处理方法汇总_php技巧

PHP关于表单提交特殊字符的处理方法做个汇总,主要涉及htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string等几个函数联合使用,与大家共同交流. 一.几个与特殊字符处理有关的PHP函数 函数名 释义 介绍 htmlspecialchars 将与.单双引号.大于和小于号化成HTML格式 &转成&"转成"' 转成'<转成<>转成> htmlentitie

PHP扩展模块memcached长连接使用方法分析_php技巧

      网上广泛流传着一篇文章,讲述php的两个扩展模块memcache和memcached的区别,其中特意强调了memcached与memcached一个很大的区别是memcached模块不支持长连接.以至于后来很多年我都认为memcached是不支持长连接的,其实不然,memcached扩展模块从很早的版本开始就已经支持长连接了.从扩展模块的源码注视中我们就能看到: /* {{{ Memcached::__construct([string persistent_id[, callbac

PHP获取POST数据的几种方法汇总_php技巧

一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据 解释:也就是表单POST过来的数据 方法2.file_get_contents("php://input"); 说明: 允许读取 POST 的原始数据. 和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini