仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 564|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP毗连数据库的办法(1)

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:04:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我的这套线路可能跟许多学习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];
当然你可以把你最基本的功能放出来的时候就放出来,比如放到论坛上,让大家都参与,
柔情似水 该用户已被删除
沙发
发表于 2015-2-4 08:25:04 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
小女巫 该用户已被删除
板凳
发表于 2015-2-9 20:04:37 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
透明 该用户已被删除
地板
 楼主| 发表于 2015-3-7 04:32:45 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
兰色精灵 该用户已被删除
5#
发表于 2015-3-14 10:22:01 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
小魔女 该用户已被删除
6#
发表于 2015-3-17 12:07:20 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
不帅 该用户已被删除
7#
发表于 2015-3-19 09:59:13 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
山那边是海 该用户已被删除
8#
发表于 2015-3-24 12:55:54 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
小妖女 该用户已被删除
9#
发表于 2015-3-25 00:36:43 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
乐观 该用户已被删除
10#
发表于 2015-4-1 07:12:10 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
金色的骷髅 该用户已被删除
11#
发表于 2015-4-3 05:57:15 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
蒙在股里 该用户已被删除
12#
发表于 2015-4-16 02:08:53 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
爱飞 该用户已被删除
13#
发表于 2015-4-16 16:10:16 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
若天明 该用户已被删除
14#
发表于 2015-4-17 23:23:37 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
再见西城 该用户已被删除
15#
发表于 2015-4-18 14:57:41 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
admin 该用户已被删除
16#
发表于 2015-4-26 05:12:00 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
谁可相欹 该用户已被删除
17#
发表于 2015-5-3 07:20:39 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
精灵巫婆 该用户已被删除
18#
发表于 2015-5-10 11:15:10 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
深爱那片海 该用户已被删除
19#
发表于 2015-6-12 08:47:35 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表