通过PHP操作SQL Server数据库.docx
- 文档编号:10512112
- 上传时间:2023-02-17
- 格式:DOCX
- 页数:12
- 大小:81.52KB
通过PHP操作SQL Server数据库.docx
《通过PHP操作SQL Server数据库.docx》由会员分享,可在线阅读,更多相关《通过PHP操作SQL Server数据库.docx(12页珍藏版)》请在冰豆网上搜索。
通过PHP操作SQLServer数据库
9.2 通过PHP操作SQLServer数据库
9.2.1 连接SQLServer数据库
虽然PHP+MySQL进行网络开发是最佳的选择,但是对于已经熟悉并掌握了SQLServer的读者来说,可能会使用SQLServer作为网站后台数据库,这时,就需要通过使用PHP来连接SQLServer数据库。
PHP同SQLServer数据库的连接步骤同MySQL基本类似,而且函数结构及声明也基本类似,如MySQL连接服务器的函数是mysql_connect(),而连接SQLServer的函数是mssql_connect(),只要将mysql替换成mssql即可。
在默认情况下,是不能连接SQLServer数据库的。
为了能够连接SQLServer数据库,必须修改php.ini文件的设置(在更改文件前需要去除该文件的只读属性),将“extension=php_mssql.dll”语句前面的分号删除,如图9.18所示,然后,重新启动Apache服务器。
mssql_connect()函数用于连接SQLServer服务器,该函数的语法如下:
resourcemssql_connect([stringservername[,stringusername[,stringpassword]]]);
其中,参数servername表示服务器名称;username表示用户名;password表示密码。
例如,用户连接本机SQLServer服务器的代码如下:
$link=mssql_connect("localhost","sa","");
9.2.2 图书信息查询
PHP操纵SQLserver数据库用到了MySQL函数库中的相关函数,下面对这些函数进行介绍。
1.mssql_connect()函数
该函数用于建立数据库的连接。
语法如下:
resourcemssql_connect(string[servername],string[username],string[password]);
2.mssql_select_db()函数
该函数用于选择数据库文件。
语法如下:
resourcemssql_select_db(stringdatabase_name,int[link_identifier]);
3.mssql_query()函数
该函数用于查询字符串。
语法如下:
resourcemssql_query(stringquery,intplink_identifier));
4.mssql_fetch_array()函数
该函数用于将查询结果result分割到数组变量中。
语法如下:
resourcearraymssql_fetch_array(intresult);
5.mssql_close()函数
该函数用于关闭与数据库的连接。
语法如下:
booleanmssql_close(int[link_identifier]);
信息查询在动态网站开发过程中应用最为广泛。
下面这个范例主要介绍PHP与SQLServer进行数据库的操作。
范例09-10 图书信息查询
范例位置:
mr\fl\09\10
录像位置:
mr\lx\09
本范例通过接收文本框传递的值赋值给session变量,来检索与之匹配的图书信息(支持模糊查询),单击【查询】按钮,即可将符合图书名称的图书信息显示在浏览器中,运行结果如图9.19所示。
图9.19 图书信息查询
本范例的实现过程如下。
(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];
?
>
php
$sql=mssql_query("select*fromtab_bookwherebooknamelike'%$_SESSION[txt_book]%'");
$info=mssql_fetch_array($sql);
if($info==False){
echo"对不起,您检索的图书信息不存在!
";
}
else{
do{
?
>
phpecho$info[id];?
>
phpecho$info[bookname];?
>
phpecho$info[issueDate];?
>
phpecho$info[price];?
>
phpecho$info[Synopsis];?
>
phpecho$info[Maker];?
>
phpecho$info[Pulisher];?
>
php
}
while($info=mssql_fetch_array($sql));
mssql_close(); //关闭数据库连接
}
}
?
>
9.2.3 图片分栏显示
在图片信息较多的页面中,将图片进行分栏显示可以使整个页面布局清晰,下面结合具体范例介绍图片分栏的技术。
范例09-11 图片分栏显示
范例位置:
mr\fl\09\11
录像位置:
mr\lx\09
在开发信息资源网站时,对资源信息的显示方法有多种,如分页显示、跳转页码显示等,本范例主要介绍分栏显示信息的方法,运行结果如图9.20所示。
图9.20 图片分栏显示
首先建立数据库连接文件,该文件代码如下:
--****************************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*fromtb_writerwherewriter_type='平面设计'orderbywriter_dataasc",$conn);
//从数据库中查询图片信息
>
……
php
$i=1; //用变量$i控制图片分栏
while($result=mssql_fetch_array($sql)) //通过循环遍历所有记录
{
if($i%5==0) //如果$i能被5整除,则显示下一栏图片
{
?
>
phpecho"./writer/".$result[writer_img];? >"width="76"height="110"border="0">
php
}
else //否则显示本栏图片
{
?
>
phpecho"./writer/".$result[writer_img];? >"width="76"height="110"border="0">
php
}
$i++; //显示一幅图片后使$i加1
}
?
>
……
9.2.4 留言板
PHP操纵SQLServer,除了可以利用PHP自身的函数外,还可以利用ADO的方法操纵SQLServer数据库,下面将以留言板为例介绍PHP利用ADO的方法操纵SQLserver数据库的实现过程。
范例09-12 留言板
范例位置:
mr\fl\09\12
录像位置:
mr\lx\09
在开发网站程序设计时,有很多的网站里都设有留言板模块。
该模块主要用于方便用户在网站内进行留言。
留言板模块包括查看留言、签写留言、管理留言。
运行本范例,用户单击“查看留言”超级链接,浏览留言信息,运行结果如图9.21所示。
图9.21 留言板页面的运行结果
为了减少代码重用率,同样建立conn.php来连接SQLserver数据库,代码如下:
--******************************conn.php**************************************-->
php
$conn=newcom("adodb.connection"); //创建数据库连接对象
$connstr="provider=sqloledb;datasource=localhost;uid=sa;pwd=;database=guestbook"; //设置数据库连接驱动
$conn->open($connstr); //调用数据库连接对象的open()方法来执行驱动,从而与数据库建立连接
>
上述代码中的datasource的值为数据库服务器的名称,uid的值为某用户名,pwd的值为用户密码,database的值为某数据库名。
有了conn.php为基础,就可以通过分页来显示所有留言信息了。
代码如下:
--******************************index.php**************************************-->
php
include_once("top.php"); //包含首部导航栏
>
……
php
include_once("conn.php"); //包含数据库连接文件
$rs=newcom("adodb.recordset"); //建立记录集对象
$sql="select*fromwordorderbyshijiandesc";
$rs->open($sql,$conn,3,1); //执行查询
if($rs->eof||$rs->bof) //如果记录集指针的位置在第一行以前或在最后一行以后,此时说明记录集中无内容
{
?
>
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)
{
?
>
……
本站共有留言
phpecho$rs->recordcount;?
>条 每页显示
phpecho$rs->pagesize;?
>条 第
phpecho$page;?
>页/共
phpecho$rs->pagecount;?
>页
php
if($page>=2) //下面代码用于实现翻页显示
{
>
page=1"title="首页"> page= phpecho$page-1;? >"title="前一页"> php } if($rs->pagecount<=4) { for($i=1;$i<=$rs->pagecount;$i++) { > page= phpecho$i;? >"> phpecho$i;? > php } } else { for($i=1;$i<=4;$i++) { > page= phpecho$i;? >"> phpecho$i;? > php } > page= php if($rs->pagecount>=$page+1) echo$page+1; else echo1; ? >"title="后一页"> page= phpecho$rs->pagecount;? >"title="尾页"> php } ? >
php
include_once("bottom.php");
通过以上代码,用户可以掌握PHP利用ADO的方式操纵SQLServer数据库的实现方法,该留言板的其他功能及详细代码请参看本书附带光盘。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通过PHP操作SQL Server数据库 通过 PHP 操作 SQL Server 数据库