|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。 |
|