通过PHP操作SQL Server数据库 1、连接SQL Server数据库 虽然PHP+MySQL进行网络开发是最佳的选择,但是对于已经熟悉并掌握了SQL Server的读者来说,可能会使用SQL Server作为网站后台数据库,这时,就需要通过使用PHP来连接SQL Server数据库。 PHP同SQL Server数据库的连接步骤同MySQL基本类似,而且函数结构及声明也基本类似,如MySQL连接服务器的函数是mysql_connect(),而连接SQL Server的函数是mssql_connect(),只要将mysql替换成mssql即可。 在默认情况下,是不能连接SQL Server数据库的。为了能够连接SQL Server数据库,必须修改php.ini文件的设置(在更改文件前需要去除该文件的只读属性),将“extension=php_mssql.dll”语句前面的分号删除,如图9.18所示,然后,重新启动Apache服务器。 mssql_connect()函数用于连接SQL Server服务器,该函数的语法如下: resource mssql_connect([string servername[,string username[,string password]]]); 其中,参数servername表示服务器名称;username表示用户名;password表示密码。 例如,用户连接本机SQL Server服务器的代码如下: $link=mssql_connect("localhost","sa",""); 2、图书信息查询 PHP操纵SQL server数据库用到了MySQL函数库中的相关函数,下面对这些函数进行介绍。 1)、mssql_connect()函数 该函数用于建立数据库的连接。语法如下: resource mssql_connect(string [servername], string [username], string [password]); 2)、mssql_select_db()函数 该函数用于选择数据库文件。语法如下: resource mssql_select_db(string database_name, int link_identifier]); 3)、mssql_query()函数 该函数用于查询字符串。语法如下: resource mssql_query(string query, int plink_identifier)); 4)、mssql_fetch_array()函数 该函数用于将查询结果result分割到数组变量中。语法如下: resource array mssql_fetch_array(int result); 5)、mssql_close()函数 该函数用于关闭与数据库的连接。语法如下: boolean mssql_close(int [link_identifier]); 信息查询在动态网站开发过程中应用最为广泛。下面这个范例主要介绍PHP与SQL Server进行数据库的操作。 本范例通过接收文本框传递的值赋值给session变量,来检索与之匹配的图书信息(支持模糊查询),单击【查询】按钮,即可将符合图书名称的图书信息显示在浏览器中,运行结果如图所示。 图书信息查询 本范例的实现过程如下。 (1)首先,利用包含文件命令include引用数据库配置文件“conn.php”,代码如下: <?php include "conn.php"; ?> 在“conn.php”文件中,主要应用mssql_connect()函数和mssql_select_db()函数建立数据源的连接,代码如下: <?php $conn=mssql_connect("localhost","sa",""); mssql_select_db("DB_Book",$conn); ?> (2)创建记录集。首先,通过表单判断用户是否单击了【查询】按钮,然后,通过接收文本框传递的值赋值给session变量,再利用查询语句检索符合条件的数据信息。最后,利用if条件语句判断记录集是否为空,如果为空,输出提示信息“对不起,您检索的图书信息不存在!”,否则,利用Do„while循环语句将符合条件的信息输出到浏览器中,程序完整代码如下: <?php if ($_POST["Submit"]!=""){ session_start(); $_SESSION[txt_book]=$_POST[txt_book]; ?> <table width="92%" border="1"> <tr bgcolor="#DEEFF7"> <td>编号</td><td>图书名称</td><td>发行日期</td><td>单价</td><td width="100">内容介绍</td> <td>作者</td><td>出版社</td></tr> <?php $sql=mssql_query("select * from tab_book where bookname like '%$_SESSION[tx t_book]%'"); $info=mssql_fetch_array($sql); if($info==False){ echo "对不起,您检索的图书信息不存在!"; } else{ do{ ?> <tr> <td> <?php echo $info[id];?> </td> <td width="180"> <?php echo $info[bookname];?> </td> <td> <?php echo $info[issueDate];?> </td> <td> <?php echo $info[price];?></td> <td width="260"> <?php echo $info[Synopsis];?></td> <td> <?php echo $info[Maker];?></td> <td> <?php echo $info[Pulisher];?></td> </tr> <?php } while($info=mssql_fetch_array($sql)); mssql_close(); //关闭数据库连接 } } ?> </table> 3、 图片分栏显示 在图片信息较多的页面中,将图片进行分栏显示可以使整个页面布局清晰,下面结合具体范例介绍图片分栏的技术。 在开发信息资源网站时,对资源信息的显示方法有多种,如分页显示、跳转页码显示等,本范例主要介绍分栏显示信息的方法,运行结果如图所示。 图片分栏显示 首先建立数据库连接文件,该文件代码如下: <!--****************************conn/conn.php***************************** ******--> <?php $conn=mssql_connect("localhost","sa",""); //连接数据库服务器 mssql_select_db("DB_mrbook",$conn); //选择数据库"DB_mrbook" ?> 下面开始具体实现商品的分栏显示: <!--*********************************index.php***********************************--> <? php include "conn/conn.php"; //包含数据库连接文件 ?> …… <?php $sql=mssql_query("select * from tb_writer where writer_type='平面设计' order by wr iter_data asc",$conn); //从数据库中查询图片信息 ?> …… <?php $i=1; //用变量$i控制图片分栏 while($result=mssql_fetch_array($sql)) //通过循环遍历所有记录 { if ($i % 5==0) //如果$i能被5整除,则显示下一栏图片 { ?> <td height="25"> <div> <img src="<?php echo "./writer/". $result [writer_img];?>" width="76" height="110" border="0">&nb sp;</div> </td> </tr> <?php } else //否则显示本栏图片 { ?> <td height="25"><div> <img s rc="<?php echo "./writer/". $result[writer_img];?>" width="76" height="110" border ="0"> </div> </td> <?php } $i++; //显示一幅图片后使$i加1 } ?> …… 4、 留言板 PHP操纵SQL Server,除了可以利用PHP自身的函数外,还可以利用ADO的方法操纵SQL Server数据库,下面将以留言板为例介绍PHP利用ADO的方法操纵SQL server数据库的实现过程。 在开发网站程序设计时,有很多的网站里都设有留言板模块。该模块主要用于方便用户在网站内进行留言。留言板模块包括查看留言、签写留言、管理留言。运行本范例,用户单击“查看留言”超级链接,浏览留言信息,运行结果如图所示。 留言板页面的运行结果 为了减少代码重用率,同样建立conn.php来连接SQL server数据库,代码如下: <!--******************************conn.php**************************************--> <?php $conn=new com("adodb.connection"); //创建数据库连接对象 $connstr="provider=sqloledb;data source=localhost;uid=sa;pwd=;database=guestbook"; //设置数据库连接驱动 $conn->open($connstr); //调用数据库连接对象的open()方法来执行驱动,从而与数据库建立连接 ?> 上述代码中的data source的值为数据库服务器的名称,uid的值为某用户名,pwd的值为用户密码,database的值为某数据库名。有了conn.php为基础,就可以通过分页来显示所有留言信息了。代码如下: <!--******************************index.php**************************************--> <?php include_once("top.php"); //包含首部导航栏 ?> …… <?php include_once("conn.php"); //包含数据库连接文件 $rs=new com("adodb.recordset"); //建立记录集对象 $sql="select * from word order by shijian desc"; $rs->open($sql,$conn,3,1); //执行查询 if($rs->eof || $rs->bof) //如果记录集指针的位置在第一行以前或在最后一行以后,此时说明记录集中无内容 { ?> <tr> <td height="20" colspan="5" >暂无留言</td> </tr> <?php } else { if($_GET[page]=="" || is_numeric($_GET[page]==false)) { $page=1; //获取查询字符串的值,为下面翻页所用 } else { $page=intval($_GET[page]); } $rs->pagesize=5; //设置每页显示5条留言 $rs->absolutepage=$page; //设置当前显示第几页 $mypagesize=$rs->pagesize; //用$mypagesize来控制每页循环显示 while(!$rs->eof && $mypagesize>0) { ?> …… 本站共有留言<?php echo $rs->recordcount;?>条 每页显示<?php echo $rs->pagesize;?>条 第<?php echo $page;?>页/共<?php echo $rs->pagecount;?>页 <?php if($page>=2) //下面代码用于实现翻页显示 { ?> <a href="index.php?page=1" title="首页"><font face="webdings"> 9 </font></a> <a href="index.php?page=<?php echo $page-1;?>" title="前一页"><font face="webdings"> 7 </font></a> <?php } if($rs->pagecount<=4) { for($i=1;$i<=$rs->pagecount;$i++) { ?> <a href="index.php?page=<?php echo $i;?>"><?php echo $i;?></a> <?php } } else { for($i=1;$i<=4;$i++) { ?> <a href="index.php?page=<?php echo $i;?>"><?php echo $i;?></a> <?php } ?> <a href="index.php?page=<?php if($rs->pagecount>=$page+1) echo $page+1; else echo 1; ?>" title="后一页"><font face="webdings"> 8 </font></a> <a href="index.php?page=<?php echo $rs->pagecount;?>" title="尾页"><font face="webdings"> : </font></a> <?php } ?> </div></td> </tr> </table> <?php include_once("bottom.php"); 通过以上代码,用户可以掌握PHP利用ADO的方式操纵SQL Server数据库的实现方法,该留言板的其他功能及详细代码请参看本书附带光盘。
信息发布:广州名易软件有限公司 http://www.myidp.net
|