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获取mysql版本的几种方法小结
Mar 25 PHP
php使用json_encode对变量json编码
Apr 07 PHP
php学习笔记之面向对象
Nov 08 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 PHP
PHP常见数组排序方法小结
Aug 20 PHP
Thinkphp页面跳转设置跳转等待时间的操作
Oct 16 PHP
PHP 代码简洁之道(小结)
Oct 16 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
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
python 自动批量打开网页的示例
2019/02/21 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
优秀党员自我评价范文
2014/09/15 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
家长反馈意见及建议
2015/06/03 职场文书
信用卡收入证明范本
2015/06/12 职场文书
开学第一周值周总结
2015/07/16 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android