仓酷云

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

[学习教程] PHP教程之PHP剧本数据库功效详解(1)

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

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

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

x
既然选择了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:30 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
柔情似水 该用户已被删除
板凳
发表于 2015-2-9 22:07:15 | 只看该作者
当然这种网站的会员费就几十块钱。
再见西城 该用户已被删除
地板
发表于 2015-2-9 22:18:29 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
若相依 该用户已被删除
5#
发表于 2015-2-26 21:11:39 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-28 19:39:19 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
因胸联盟 该用户已被删除
7#
发表于 2015-3-2 02:08:18 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
兰色精灵 该用户已被删除
8#
发表于 2015-3-4 14:41:40 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
小妖女 该用户已被删除
9#
发表于 2015-3-10 13:03:38 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
10#
发表于 2015-3-10 16:08:49 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
不帅 该用户已被删除
11#
发表于 2015-3-13 02:24:30 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
深爱那片海 该用户已被删除
12#
发表于 2015-3-16 02:31:36 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
若天明 该用户已被删除
13#
发表于 2015-3-17 09:31:09 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
山那边是海 该用户已被删除
14#
发表于 2015-3-21 01:52:15 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
谁可相欹 该用户已被删除
15#
发表于 2015-3-24 00:18:00 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
小魔女 该用户已被删除
16#
发表于 2015-4-2 15:04:05 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
老尸 该用户已被删除
17#
发表于 2015-4-8 15:52:06 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
再现理想 该用户已被删除
18#
发表于 2015-4-24 08:32:26 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
admin 该用户已被删除
19#
发表于 2015-4-28 09:44:28 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 23:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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