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 csv操作类代码
Dec 14 PHP
php使用session二维数组实例
Nov 06 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
PHP封装的page分页类定义与用法完整示例
Dec 24 PHP
使用vs code编辑调试php配置的方法
Jan 29 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 PHP
laravel 解决强制跳转 https的问题
Oct 22 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模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
详解js的六大数据类型
2016/12/27 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
python2 与python3的print区别小结
2018/01/16 Python
python中的变量如何开辟内存
2018/06/26 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Python字典实现伪切片功能
2020/10/28 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
土木工程个人自荐信范文
2013/11/30 职场文书
在校生自我鉴定
2014/01/23 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
大学生社会实践感想
2015/08/11 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
用golang如何替换某个文件中的字符串
2021/04/25 Golang
4种方法python批量修改替换列表中元素
2022/04/07 Python