zoukankan      html  css  js  c++  java
  • php使用adodb操作access和sql server数据库及分页示例

    熟悉asp的人都知道使用ado操作数据库是非常方便的 ,php中也可以使用这个方式。

    首先下载adodb,http://adodb.sourceforge.net/,这里的是最新的,另外也可以【点击这里下载】,这个是2010年8月15日下载下来的。

    如果你写过asp程序,那使用起php的adodb来操作access或者sql server一点障碍都没有,简直一模一样。

    其中的分页是qdodb已经实现了的,对于中小型数据量的程序来讲不用过多的考虑,如果对大数据量的分页就要考虑更科学的分页方法了。

    下面是php,adodb,操作access的示例代码:

    代码
    <?php include("inc/adodb.inc.php"); ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
    <div align="center">
      
    <?php 
    $sql = "select * from info order by createtime desc";

    $conn = new com("ADODB.Connection");
    $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("qzcddb.mdb");

    if($conn->State == 0)
        
    $conn->Open($connstr);

    $rs = new com("ADODB.RecordSet");

    $rs->Open($sql,$conn,1,3);


    if($rs->recordcount == 0)
    {
        
    echo "无记录"
    }
    else
    {
        
    $rs->pagesize=5;
        
    $page = $_REQUEST['page'];
        
    if((trim(intval($page))=='')||(intval($page)>$rs->pagecount)||(intval($page)<=0))
        {
            
    $page=1;
        }
        
    else
        {
            
    $page=intval($page);
        }
       
        
    $rs->absolutepage=$page;
        
    $mypagesize=$rs->pagesize;  
    ?>

        
    <table width="600" border="1"  cellspacing="0" cellpadding="0">
          
    <tr align="center"> 
            
    <td width="6%" height="30"><strong>编号</strong></td>
            
    <td><strong>文章标题</strong></td>
            
    <td width="16%"><strong>建立时间</strong></td>
          
    </tr>
             
    <?php
              
    for ($i = 0$i < $rs->pagesize; $i++
                {
              
    ?>
          
    <tr> 
            
    <td height="30" align="center"><?php echo $rs->fields['id']->value; ?></td>
            
    <td>&nbsp;<a href="infodetail.php?id=<?php echo $rs->fields['id']->value; ?>"><?php echo $rs->fields['title']->value; ?></a></td>
            
    <td align="center">&nbsp;<?php echo $rs->fields['createtime']->value; ?></td>
           
    </tr>
           
    <?php
                       
    $rs->movenext();
                    
    if($rs->eof)break;
                }
              
    ?>
      
    </table>
      
     
    <table height="50">
         
    <tr>
            
    <td></td>
            
    <td width="100" align="center">当前<?php echo $page;?>/<?php echo ceil($rs->recordcount/$rs->pagesize);?></td>
            
    <td>
            [
    <a href="lista.php?page=1">首页</a>
            [
    <a href="lista.php?page=<?php echo $page-1;?>">上一页</a>
            [
    <a href="lista.php?page=<?php echo $page+1;?>">下一页</a>
            [
    <a href="lista.php?page=<?php echo ceil($rs->recordcount/$rs->pagesize);?>">尾页</a>
            
    </td>
            
    <td width="80" align="center"><?php echo $rs->recordcount;?>条记录</td>
            
    <td>
            
    <input type="text" name="page" id="page" value="<?php echo $page;?>" style=" 50px; height: 25px">
            
            
    </td>
            
    <td><input type="button" name="button" id="button" value="跳转" onClick="location.href='lista.php?page='+document.getElementById('page').value" /></td>
        
    </tr>
    </table>
            
    <?php
    }

    $rs->close;
    $conn->close;
    ?>
     
    </div>
    </body>
    </html>

    下面是php,adodb,操作sql server2005的示例代码:

    代码

    <?php include("inc/adodb.inc.php"); ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
    <div align="center">
      
    <?php 
    $sql = "select * from info order by createtime desc";



    $connstr = "PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER={CG\SQLSERVER2005};DATABASE=db;UID=sa;PWD=123;";
    $conn = new com("ADODB.Connection");


    if($conn->State == 0)
        
    $conn->Open($connstr);
        
    $rs = new com("ADODB.RecordSet");

    $rs->Open($sql,$conn,1,3);



    if($rs->recordcount == 0)
    {
        
    echo "无记录"
    }
    else
    {
        
    $rs->pagesize=5;
        
    $page = $_REQUEST['page'];
        
    if((trim(intval($page))=='')||(intval($page)>$rs->pagecount)||(intval($page)<=0))
        {
            
    $page=1;
        }
        
    else
        {
            
    $page=intval($page);
        }
       
        
    $rs->absolutepage=$page;
        
    $mypagesize=$rs->pagesize;  
    ?>

        
    <table width="600" border="1"  cellspacing="0" cellpadding="0">
          
    <tr align="center"> 
            
    <td width="6%" height="30"><strong>编号</strong></td>
            
    <td><strong>文章标题</strong></td>
            
    <td width="16%"><strong>建立时间</strong></td>
          
    </tr>
             
    <?php
              
    for ($i = 0$i < $rs->pagesize; $i++
                {
              
    ?>
          
    <tr> 
            
    <td height="30" align="center"><?php echo $rs->fields['id']->value; ?></td>
            
    <td>&nbsp;<a href="infodetail.php?id=<?php echo $rs->fields['id']->value; ?>"><?php echo $rs->fields['title']->value; ?></a></td>
            
    <td align="center">&nbsp;<?php echo $rs->fields['createtime']->value; ?></td>
           
    </tr>
           
    <?php
                       
    $rs->movenext();
                    
    if($rs->eof)break;
                }
              
    ?>
      
    </table>
      
     
    <table height="50">
         
    <tr>
            
    <td></td>
            
    <td width="100" align="center">当前<?php echo $page;?>/<?php echo ceil($rs->recordcount/$rs->pagesize);?></td>
            
    <td>
            [
    <a href="list.php?page=1">首页</a>
            [
    <a href="list.php?page=<?php echo $page-1;?>">上一页</a>
            [
    <a href="list.php?page=<?php echo $page+1;?>">下一页</a>
            [
    <a href="list.php?page=<?php echo ceil($rs->recordcount/$rs->pagesize);?>">尾页</a>
            
    </td>
            
    <td width="80" align="center"><?php echo $rs->recordcount;?>条记录</td>
            
    <td>
            
    <input type="text" name="page" id="page" value="<?php echo $page;?>" style=" 50px; height: 25px">
            
            
    </td>
            
    <td><input type="button" name="button" id="button" value="跳转" onClick="location.href='list.php?page='+document.getElementById('page').value" /></td>
        
    </tr>
    </table>
            
    <?php
    }

    $rs->close;
    $conn->close;
    ?>
     
    </div>
    </body>
    </html>

    其中

    $connstr = "PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER={CG\SQLSERVER2005};DATABASE=db;UID=sa;PWD=123;";
    需要解释一下,“CG\SQLSERVER2005”是数据库服务器的地址,对于数据库安装时是默认实例的可以只写机器名称或者ip,如CG或者192.168.0.1,本机可以使用“.”或者127.0.0.1,对于自定义了实例的数据库就需要再写上实例的名称,如SQLSERVER2005。

     

    代码中<?php include("inc/adodb.inc.php"); ?>是包含了“adodb.inc.php”文件。

    “adodb.inc.php”是下载下来的adodb中的文件,需要将该文件复制到站点下面。

  • 相关阅读:
    织梦dedecms网站数据库出错如何修复
    如何实现织梦dedecms会员登陆后就不显示广告
    搜索框里显示字段鼠标点击后就隐藏的方法
    织梦dedecms首页如何调用联动类别代码
    织梦CMS友情链接调用方法技巧大全
    DedeCMS 标题seo优化给列表页加上第x页
    DedeCMS采集教程:过滤替换的技巧
    织梦dedecms网站数据库出错如何修复
    压力测试-查看索引
    时间同步服务部署
  • 原文地址:https://www.cnblogs.com/weekzero/p/1800087.html
Copyright © 2011-2022 走看看