仓酷云
标题:
PHP教程之PHP剧本数据库功效详解(1)
[打印本页]
作者:
透明
时间:
2015-2-4 00:16
标题:
PHP教程之PHP剧本数据库功效详解(1)
既然选择了PHP,就要坚持学下去!大家有没有问自己为什么会选择学习PHP呢?就我个人而言,完全是因为兴趣,因为我的专业和计算机完全无关,但是就是对编程很赶兴趣,尤其对网络编程、web开发特别赶兴趣。剧本|数据|数据库|详解 (作者:王凯波)
在以后互联网开展敏捷、电子商务网站层见叠出的情势下,对网站开辟的效力和质量提出了愈来愈高的请求。
关于大型和布局庞杂、内容单一的网站,都要完成网站的静态化和便利的办理。数据办理离不开数据库体系的撑持。而权衡一种CGI言语的主要标记,就是它对后台数据库的会见才能、效力等。
而今朝盛行的PHP剧本言语,它的新特征给咱们带来了新的感到。它撑持以面向对象的体例停止设计开辟。同时,为了知足网页共同的需求,用模板、XML撑持等带来了网站开辟的新办法。在言语布局上,PHP具有相似于C++言语的布局,并引入了类的概念,简化了开辟。
PHP还具有壮大的数据库撑持才能。咱们这里就经由过程实例,起首引见PHP会见数据库的普通流程,然后经由过程文件的数据库存储引见PHP会见数据库的一种初级使用。最初经由过程数据库类的利用实例,引见真正适用高效的数据库开辟办法。
登录/注册后可看大图
图1
PHP数据库功效简介
PHP供应对10余种罕见数据库的撑持,如Oracle、dBase、Informix、SQL Server、Sysbase、MySQL等。恰是因为普遍的数据库撑持,才拓展了PHP的使用局限, 使得各类使用都可以使用PHP停止开辟。
在各类数据库中,MySQL因为其收费、跨平台、利用便利、会见效力较高,取得了很大的使用。良多中间型网站都利用PHP+MySQL这一最好伙伴。
Oracle是典范的大型数据库使用体系。假如你设计的网站数据量大,功能、效力请求高的话,Oracle是个不错的选择。
在Win32平台上,SQL Server占领较大的市场。PHP可以会见SQL Server。
PHP对各类数据库的会见办法停止封装,针对分歧数据库体系的函数也很类似,增添了利用的便利性。
上面,咱们将以一个复杂的人才网信息交换中间(见图1)为例子,编程完成团体简历的在线提交、阅读等功效,讲述PHP数据库操作的全进程。数据库采取最经常使用的MySQL数据库。
PHP数据库操作根基步调
咱们将在当地机械创立名为ResumeDB的数据库,数据库中着名为Resume的表。表中存储团体简历的编号、人员称号、团体简介,和Word格局的简历文件等。
1.数据库的创立
切换至/usr/local/mysql/bin目次,在号令行,履行以下语句创立数据库:
./mysqladmin-u root-p create ResumeDB
Enter password:
在提醒后输出暗码。假如数据库是第一次利用,默许的暗码为空,直接回车便可。
然后创立保留团体简历的表。
创立文本文件Resume.sql,内容以下:
use ResumeDB;
CREATE TABLE Resume (
ID tinyint(4) NOT NULL auto_increment,
Name varchar(10) NOT NULL,
Intro varchar(255),
ResuFile longblob,
PRIMARY KEY (ID),
KEY ID (ID)
);
将其放到My的可履行目次/usr/local/mysql/bin下,履行以下号令:
./mysql-u root-p〈 Resume.sql
Enter password:
输出数据库暗码后,表Resume主动创立胜利。个中,ResuFile字段为longbolb型,用来存储二进制的Word文档。
2.数据库会见流程
PHP对数据库的会见普通包含以下步调:毗连数据库体系→选择数据库→履行SQL语句→封闭了局集→封闭数据库毗连→停止。
(1) 毗连数据库
毗连数据库是创立用户法式到数据库体系的对话通道的进程。毗连MySQL数据库的语句以下:
〈?
$LinkID=@mysql_connect("localhost", "root" , "") or die("不克不及毗连到数据库办事器!多是数据库办事器没有启动,或用户名暗码有误!");
?〉
个中,函数mysql_connect()用于与数据库办事器创立毗连。三个参数分离为:数据库办事器的主机名(也能够是IP)、数据库用户名和用户暗码。函数前往值用于暗示这个数据库毗连。
从这个号令可以看到,咱们可以指定并不是本机的机械名作为数据库办事器。如许,就为数据的异地寄存、数据库的平安隔离供应了能够。外界用户常常具有WWW办事器的直接会见权限,假如数据库体系直接放置在WWW办事器上,便可能会带来平安隐患。而假如将数据库体系放置于一台防火墙前面的盘算机上,PHP可以经由过程局域网会见数据库,而局域网外部的盘算机对内部是不成见的。如许,就包管了数据库不受外来进击的能够。
函数后面的“@”符号,用于限制这个号令的失足信息的显示。假如函数挪用失足,将履行or前面的语句。die( )函数暗示向用户输入引号中的内容后,法式终止履行。如许做是为了避免数据库毗连失足时,用户看到一堆稀里糊涂的专业名词,而是提醒定制的失足信息。不外在调试的时分,咱们仍是可以不要屏障失足信息,以免失足后,难以找到究竟哪里有成绩。
(2) 数据库选择
一个数据库体系可以包括多个数据库。在创立了和数据库办事器的毗连后,咱们就要告知体系,咱们将要用到的数据库是哪一个。选择数据库的号令以下:
〈?
@mysql_select_db("ResumeDB",$LinkID) or die("选择数据库失足,多是您指定的数据库不存在!");
?〉
选择数据库时,要供应的参数是数据库的称号、和办事器毗连号。
当咱们只利用一台数据库办事器时,$LinkID可以省略,体系主动查找比来的一个数据库毗连然后利用它。然而,当你要完成大型站点的时分,必不成少的要碰到多主机、多半据库体系的情形。这时候,数据库毗连参数就不克不及省略了。
(3) 数据库会见
好了,咱们已创立了到数据库的毗连,选定了数据库,接下了来的一切就是履行SQL语句了。SQL语句的易用而壮大的功效,将完成咱们绝大局部的数据库操作举措。
咱们可以起首向数据库里写入一条团体信息纪录,然后把它显示出来。
〈?
$Name= "OpenBall"; //实践操作中,$Name、$Intro为从阅读器表单传来的值
$Intro = "OpenBall的团体简介……";
$query = "insert into Resume(Name,Intro) values('$Name', '$Intro')"; //生成SQL语句
$result = @mysql_query("$query",$LinkID); //履行
if(! $result)
echo "数据拔出掉败!";
$query= "select ID,Name,Intro from Resume"; //生成SQL语句
$result = mysql_query($query,$LinkID); //履行,了局集保留到变量$result中
$num= mysql_num_rows($result); //获得查询前往的纪录行数
if($num == 0)
{
echo "没有找就任何纪录";
exit();
}
while($row=mysql_fetch_array($result)) //取了局集的下一行数据到数组$row中
{
echo $row["ID"]." ".$row["Name"]." ".$row["Intro"]."〈br〉";
//以字段名为索引会见数组变量的值
}
?〉
下面的操作,共履行了两次数据库操作。第一次为拔出操作,第二次为查询操作。法式起首拔出以后用户的一天纪录,然后,显示一切数据库中的团体情形。
(4)资本释放
操作的最初,是释放了局集,释放了局集和数据库毗连资本。
〈?
@mysql_free_result($result);
@mysql_close($LinkID);
?〉
假如在多个网页中都要频仍停止数据库会见,则可以创立与数据库办事器的延续毗连来进步效力。由于每次与数据库办事器的毗连需求较长的工夫和较大的资本开支,延续的毗连绝对来讲会更无效。
创立延续毗连的办法,就是在数据库毗连的时分,挪用函数mysql_pconnect()取代mysql_connect() 。创立的延续毗连在本法式停止时,不需求挪用mysql_close()来封闭。下次法式在此履行mysql_pconnect()时,体系主动直接前往已创立的延续毗连的ID号,而不再去真的毗连数据库。 终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。
作者:
飘飘悠悠
时间:
2015-2-4 10:30
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者:
柔情似水
时间:
2015-2-9 22:07
当然这种网站的会员费就几十块钱。
作者:
再见西城
时间:
2015-2-9 22:18
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
作者:
若相依
时间:
2015-2-26 21:11
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者:
第二个灵魂
时间:
2015-2-28 19:39
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者:
因胸联盟
时间:
2015-3-2 02:08
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者:
兰色精灵
时间:
2015-3-4 14:41
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者:
小妖女
时间:
2015-3-10 13:03
本文当是我的笔记啦,遇到的问题随时填充
作者:
仓酷云
时间:
2015-3-10 16:08
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者:
不帅
时间:
2015-3-13 02:24
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者:
深爱那片海
时间:
2015-3-16 02:31
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者:
若天明
时间:
2015-3-17 09:31
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者:
山那边是海
时间:
2015-3-21 01:52
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者:
谁可相欹
时间:
2015-3-24 00:18
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
作者:
小魔女
时间:
2015-4-2 15:04
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者:
老尸
时间:
2015-4-8 15:52
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者:
再现理想
时间:
2015-4-24 08:32
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
作者:
admin
时间:
2015-4-28 09:44
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
欢迎光临 仓酷云 (http://www.ckuyun.com/)
Powered by Discuz! X3.2