PHP网站制作之PHP毗连数据库的办法(1)
我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。导读
信任人人对PHP已很熟习了。PHP内置了几近对世界上一切的数据库的撑持,而不再需求从头扩大。所以有人说:不会用PHP挪用数据库,等于没学PHP。上面是笔者依据自己的操作经历和大侠们的定见而得出的总结,但愿能给初学者供应一些好处。
信任人人对PHP已很熟习了。PHP内置了几近对世界上一切的数据库的撑持,而不再需求从头扩大。所以有人说:不会用PHP挪用数据库,等于没学PHP。上面是笔者依据自己的操作经历和大侠们的定见而得出的总结,但愿能给初学者供应一些好处。
PHP挪用三种数据库的办法
本文对照具体的引见PHP挪用MySQL、ODBC和ORACLE数据库。
MySQL是一个玲珑灵珑的数据库办事器软件,关于中、小型使用体系长短常幻想的。除撑持尺度的ANSI SQL语句外,最主要的是,它还撑持多种平台,而在Unix/Linux体系上,MySQL撑持多线程运转体例,从而能取得相当好的功能。它和PHP、Apache一样,是属于开放源代码软件。其官方网站是:http://www.mysql.com,下面供应Windows,Linux,Unix版本的源代码的下载。
注重,MySQL会见函数都需求有响应的权限才干运转。经常使用的相干函数引见以下:
(1)integer mysql_connect(主机,用户名,口令);
此函数入手下手一个对指定主机上的MySQL数据库的毗连。若该数据库位于一个分歧地端口,则在主机名后加上冒号和端标语。一切参数均为可选的,缺省情形下分离对应为当地主机、用户正在履行的剧本名和空。主机可所以IP地址或域名。
在剧本履行停止时,毗连被主动封闭,也能够用mysql_close提早封闭。
(2)boolean mysql_create_db(数据库名);
创立一个数据库。注重必需用一个带有创立数据库允许权的帐号翻开毗连。
(3)boolean mysql_select_db(数据库名,毗连号);
选择缺省数据库。
(4)integer mysql_query(SQL语句,毗连号);
对指定命据库停止查询。假如SQL语句是select,则前往一个了局号,不然前往的值可以不睬会。假如掉败,前往false.。
(5)array mysql_fetch_array(了局号);
掏出下一行,前往一个数组.可以用数字下标会见(第一个字段是下标 0),也能够用字符串下标会见(即便用各字段名)。如已取了最初一行,前往 false.。
(6)mysql_fetch_row(了局号);
前往一个矩阵代表了局集中一行的一切域。每次挪用城市发生下一行,直到没有行剩下时前往false。每一个域值都由一个从零入手下手的偏移量索引。这是从查询中获得了局的最快办法。
(7)integer mysql_num_rows(了局号);
前往了局集中行的数量
(8)integer mysql_num_fields(了局号);
前往了局集中域的数量。
(9)integer mysql_list_dbs();
向办事器查询数据库列表。它前往一个了局指针,该指针可用于mysql_fetch_row函数及相似函数。
(10)mysql_list_tables(数据库名);
获得一个指向指定命据库的表单列表的了局指针。该了局指针可用于任何从了局集中获得行的函数。
(11)mysql_close(毗连号);
封闭对数据库的毗连。毗连必需是由mysql_connect翻开的。该函数的利用不是严厉必须的,由于在剧本停止时,一切非永世链路城市被主动封闭。
(12)mysql_pconnect(主机,用户名,口令);
与mysql_connect完整类似,但创立一个"永世毗连",该毗连一经创立永不封闭,即便利用mysql_close函数或法式履行终了也不封闭.下一次试图创立永世毗连时,体系如发明已存在一个永世毗连,则直接前往该毗连号而不从头创立。
上面是一个挪用MYSQL数据库并分页显示的例子。
<?
$pagesize = 5; //每页显示5笔记录
$host="localhost";
$user="user";
$password="psw";
$dbname="book"; //所查询的库表名;
//毗连MySQL数据库
mysql_connect("$host","$user","$password") or die("没法毗连MySQL数据库办事器!");
$db = mysql_select_db("$dbname") or die("没法毗连数据库!");
$sql = "select count(*) as total from pagetest";//生成查询纪录数的SQL语句
$rst = mysql_query($sql) or die("没法履行SQL语句:$sql !"); //查询纪录数
$row = mysql_fetch_array($rst) or die("没有更多的纪录!"); /掏出一笔记录
$rowcount = $row["total"];//掏出纪录数
mysql_free_result($rst) or die("没法释放result资本!"); //释放result资本
$pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);//算出总共有几页
if(!isset($pageno)) {
$pageno = 1; //在没有设置pageno时,缺省为显示第1页
}
if($pageno<1) {
$pageno = 1; //若pageno比1小,则把它设置为1
}
if($pageno>$pagecount) {
$pageno = $pagecount; //若pageno比总共的页数大,则把它设置为最初一页
}
if($pageno>0) {
$href = eregi_replace("%2f","/",urlencode($PHP_SELF));//把$PHP_SELF转换为可以在URL上利用的字符串,如许的话就能够处置中文目次或中文文件名
if($pageno>1){//显示上一页的裢接
echo "<a href="" . $href . "?pageno=" . ($pageno-1) . "">上一页</a> ";
}
else{
echo "上一页";
}
for($i=1;$i<$pageno;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
echo $pageno . " ";
for($i++;$i<=$pagecount;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
if($pageno<$pagecount){//显示下一页的裢接
echo "<a href="" . $href . "?pageno=" . ($pageno+1) . "">下一页</a> ";
}
else{
echo "下一页 ";
}
$offset = ($pageno-1) * $pagesize;//算出本页第一笔记录在全部表中的地位(第一笔记录为0)
$sql = "select * from pagetest LIMIT $offset,$pagesize";//生成查询本页数据的SQL语句
$rst = mysql_query($sql);//查询本页数据
$num_fields = mysql_num_fields($rst);//获得字段总数
$i = 0;
while($i<$num_fields){//获得一切字段的名字
$fields[$i] = mysql_field_name($rst,$i);//获得第i+1个字段的名字
$i++;
}
echo "<table border="1" cellspacing="0" cellpadding="0">";//入手下手输入表格
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//显示字段称号
echo "<th>$field_name</th>";
}
echo "</tr>";
while($row=mysql_fetch_array($rst)){//显示本页数据
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//显示每一个字段的值
$field_value = $row[$field_name];
当然你可以把你最基本的功能放出来的时候就放出来,比如放到论坛上,让大家都参与, 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 本文当是我的笔记啦,遇到的问题随时填充 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 基础有没有对学习php没有太大区别,关键是兴趣。 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
页:
[1]