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

为了能让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
?>

(0)

相关推荐

  • PHP基于mssql扩展远程连接MSSQL的简单实现方法

    本文实例讲述了PHP基于mssql扩展远程连接MSSQL的简单实现方法.分享给大家供大家参考,具体如下: 这里给出的是一个简单的示例,没有做安全考虑,自行处理吧: <?php // 连接数据库 $conn = mssql_connect('hostip:1433','user','pass') or die("SQL SERVER 数据库连接失败!"); // 选择数据库 mssql_select_db('UserInfo', $conn); // sql语句 $sql = &q

  • php5.3不能连接mssql数据库的解决方法

    本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不支持mssql_connect这个函数连接了,以前我也讲可以使用com接口来实现,现在我再介绍解决php5.3不能连接mssql数据库另一方法. windows系统下,PHP5.3以上的版本已经不支持mssql扩展. 首先http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 点击 get it 下载SQLSRV2

  • PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例

    本文实例讲述了PHP连接MSSQL2008/2005数据库(SQLSRV)配置方法,分享给大家供大家参考.具体方法如下: PHP连接MSSQL2008/2005数据库与以往的连接mssql2000是不一样的,连接mssql2008/2005是需要自己添加PHP对MSSQL连接的驱动扩展了,而我们常用的hp.ini中的extension=php_mssql.dll扩展只适用连接于MSSQL2000,下面我们就来看看对此的解决办法 1.下载扩展 (1)去官方下载一个SQL Server Driver

  • php连接微软MSSQL(sql server)完全攻略

    在研究ezSQL的时候就看到了mssql_connect()等一些php提供的连接MSSQL的函数,本以为php这个开源的风靡世界的编程语言对连接微软的数据应该是不在话下的,但是到真正执行的时候,才发现困难多多. 一开始我下载的php版本是5.93的,下载下来添加环境变量等等搞了半天后,phpinfo()这个函数终于成功的运行在浏览器中了.然后当我在满世界的找php_mssql.dll,才发现在5.3以及以上版本的php中已经不是原生态的支持mssql了. 好不容易找到了微软Microsoft

  • php连接mssql数据库的几种方法

    首先,php.ini文件中;extension=php_pdo_mssql.dll ;extension=php_pdo_odbc.dll 前面的分号去掉,对应的使哪种方式连接mssql.注意要重启服务使其生效. 一.建立连接 1.odbc 首先,在php程序所在的服务器设置odbc.这里32位和64位操作系统有区别.32位的从控制面板中管理工具中的数据源(odbc)直接建立就可以了,64位的要运行C:\Windows\SysWOW64\odbcad32.exe 从这里面设置.注意:上面只的是数

  • php的mssql数据库连接类实例

    本文实例讲述了php的mssql数据库连接类实例代码,分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: class DB_Sql {   var $Host     = "";   var $Database = "";   var $User     = "";   var $Password = "";   var $Link_ID  = 0;   var $Query_ID = 0;   var $Rec

  • php 连接mssql数据库 初学php笔记

    复制代码 代码如下: <?php $serverSite="."; $db="phpdemo"; $name="sa"; $pass="sa"; $conn=@mssql_connect($serverSite,$name,$pass) or die("数据库连接错误!"); @mssql_select_db("phpdemo",$conn); echo 'this can be

  • php基于PDO连接MSSQL示例DEMO

    本文实例讲述了php基于PDO连接MSSQL的方法.分享给大家供大家参考,具体如下: <?php try { $hostname='117.79.93.222'; $port=1433;//端口 $dbname="csdn";//库名 $username="csdn_admin";//用户 $pw="123456";//密码 $dbh= new PDO("dblib:host=$hostname:$port;dbname=$dbn

  • 关于php连接mssql:pdo odbc sql server

    只有一个php_pdo_odbc.dll. so~最新最好的php连接mssql方法应该是这样: 复制代码 代码如下: <?php $cnx = new PDO("odbc:Driver={SQL Server};Server=127.0.0.1;Database=test;",'sa','asd123'); var_dump($cnx); $a = $cnx->query("SELECT * FROM [user]"); var_dump($a); f

  • php下连接mssql2005的代码

    1.下载以下两个文件,放入php ext目录及system32 php_sqlsrv_52_ts_vc6.dll (线程安全) php_sqlsrv_52_nts_vc6.dll (非线程安全) vc6用于Apache,vc9用于IIS 2.修改php.ini extension=php_sqlsrv_52_ts_vc6.dll 3.下载sqlncli.msi,微软官方可以下 安装的时候提示是sql server 2008的,不过2005也是可以用的. 4.测试代码 复制代码 代码如下: <?p

  • php使用pdo连接mssql server数据库实例

    本文实例讲述了利用php的pdo来连接微软的mssql server数据库的方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: $dsn = 'mssql:dbname=bookStore_demo;host=192.168.1.106'; $user = 'sa'; $password = '123';     //mssql_connect('192.168.1.106','sa','123');     //echo 22; try {        // echo 11

  • PHP连接MSSQL方法汇总

    为了能让PHP连接MSSQL,系统需要安装MSSQL,PHP,且在PHP.ini中的配置中,将 ;extension=php_mssql.dll前面的;去掉 1.连接MSSQL $conn=mssql_connect("实例名或者服务器IP","用户名","密码"); //测试连接 if($conn) { echo "连接成功"; } 2.选择要连接的数据库 mssql_select_db("dbname"

  • php adodb连接mssql解决乱码问题

    周海汉/文ADO可以用 new COM("ADODB.Connection", NULL, CP_UTF8)//65001 这样的语句来实现正确转换.但ADO对php的支持缺乏文档.而有个开源的adodb,文档较为丰富. 其中对不同数据库驱动,设置UTF-8的方法还不一样,如下: 复制代码 代码如下: For all drivers 'persist', 'persistent', 'debug', 'fetchmode', 'new' Interbase/Firebird 'dial

随机推荐