php连接mssql的一些相关经验及注意事项


Posted in PHP onFebruary 05, 2013

为了能让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("selecttop1id,usernamefromtbname",$conn); 
或者直接执行update,insert等语句,可以不用为返回结果赋值 
mssql_query("updatetbnamesetusername='niunv'whereid=1");

4.获取记录集行数
echomssql_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("insertintotbname(username)values('nv')",$conn); 
$rs=mssql_query("select@@IDENTITYasid",$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没有安装,很遗憾...
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
<?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->userName,$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'>首页<<</a>"; 
} 
if($Page!==1){ 
$upPage="<ahref='".$web."?page=".($Page-1)."&".$Post."'target='_self'>上一页</a>"; 
}else{ 
$upPage="上一页"; 
} 
if($Page<$pageNum){ 
$downPage="<ahref='".$web."?page=".($Page+1)."&".$Post."'target='_self'>下一页</a>"; 
}else{ 
$downPage="下一页"; 
} 
if($Page==$pageNum){ 
$foot=">>尾页"; 
}else{ 
$foot="<ahref='".$web."?page=".$pageNum."&".$Post."'target='_self'>>>尾页</a>"; 
} 
$back=<<<EOT 
共$pageNum页   
第$Page/$pageNum页$top $upPage $downPage $foot 
EOT; 
} 
return$back; 
} 
}//endclass 
?>
PHP 相关文章推荐
php.ini 中文版
Oct 28 PHP
php 数学运算验证码实现代码
Oct 11 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
PHP MPDF中文乱码的解决方式
Dec 08 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
PHP使用递归按层级查找数据的方法
Nov 10 PHP
详解PHP Swoole与TCP三次握手
May 27 PHP
用php随机生成福彩双色球号码的2种方法
Feb 04 #PHP
php获取服务器信息的实现代码
Feb 04 #PHP
关于PHP实现异步操作的研究
Feb 03 #PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 #PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 #PHP
php处理文件的小例子(解压缩,删除目录)
Feb 03 #PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 #PHP
You might like
html中select语句读取mysql表中内容
2006/10/09 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
详解Python中的元组与逻辑运算符
2015/10/13 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
python pandas修改列属性的方法详解
2018/06/09 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
python 模拟登录B站的示例代码
2020/12/15 Python
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
高中毕业的自我鉴定
2013/12/09 职场文书
初婚初育证明
2014/01/14 职场文书
大学毕业寄语大全
2014/04/10 职场文书
婚庆公司计划书
2014/09/15 职场文书
汽车转让协议书范本
2014/12/07 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
2015年入党决心书
2015/02/05 职场文书