PHP编程:PHP剧本数据库功效详解(2)
会有很多高手的鼓励,新手的支持,慢慢你劲头就十足,有更多的信心和兴趣去学。剧本|数据|数据库|详解 (作者:王凯波)使用PHP将文件保留到数据库
数据库是数据组织、存储的中间。将要处置的也多是各类数据,包含法式、文件、报表,乃至音频、视频数据。因为经由过程阅读器,团体用户只能填写少局部的团体简历。因而,咱们这里示范用户团体简历上载的功效。其他类型的数据可以仿照此例停止操作。
起首是信息搜集页面。让用户选摘要上载的文件。此页面的html代码以下:
〈!-- begin of post.htm--〉
〈p〉 〈/p〉
〈form method="POST" action="insert.php" ENCTYPE="multipart/form-data"〉
〈p〉〈b〉团体简历提交〈/b〉〈/p〉
〈p〉姓名:〈br〉
〈input type="text" name="Name" size="20"〉〈/p〉
〈p〉团体简介:〈br〉
〈textarea rows="2" name="Intro" cols="20"〉〈/textarea〉〈/p〉
〈p〉简历文件:〈br〉
〈input type="file" name="ResuFile"〉〈/p〉
〈p〉〈input type="submit" value="提交" name="B1"〉〈/p〉
〈/form〉
〈!-End of post.htm--〉
注重,ENCTYPE关头字必定不克不及省,不然文件没法准确上载。
这里,咱们再把向数据库拔出纪录的代码从头设计:
〈?
//begin of file insert.php
if($ResuFile != "none")
//肯定用户选择了文件
{
$Size = filesize($ResuFile);
//肯定文件巨细
$mFileData = addslashes(fread(fopen($ResuFile, "r"), $Size));
//读取文件,对内容停止处置
unlink($ResuFile);
//删除上载一时文件
}
$LinkID=@mysql_connect("localhost", "root" , "") or die("不克不及毗连到数据库办事器!多是数据库办事器没有启动,或用户名暗码有误!");
$DBID = @mysql_select_db("ResumeDB",$LinkID) or die("选择数据库失足,多是您指定的数据库不存在!");
$query = "insert into Resume(Name,Intro,ResuFile) values('$Name', '$Intro', '$mFileData')";
$result = @mysql_query("$query",$LinkID); //履行查询,拔出文件到数据库
if(! $result)
echo "数据拔出掉败!";
else
echo "文件上载胜利!";
@mysql_close($LinkID);
//end of file insert.php
?〉
有了下面的基本,写出从数据库读数据的法式应当很复杂了。需求注重的是文件向客户发送的办法。办事器必需向阅读器发送头信息,申明将要发送的数据为word文档。假如用户盘算机装有MSWord,阅读器将主动挪用word停止文档显示。
咱们可以设置一个超等链接,来下载这个Word文件:
〈?
//begin of file show.php
$LinkID=@mysql_connect("localhost", "root" , "") or die("不克不及毗连到数据库办事器!多是数据库办事器没有启动,或用户名暗码有误!");
$DBID = @mysql_select_db("ResumeDB",$LinkID) or die("选择数据库失足,多是您指定的数据库不存在!");
$query = "insert into Resume(Name,Intro,ResuFile) values('$Name', '$Intro', '$mFileData')";
$result = @mysql_query("$query",$LinkID);
//履行查询,拔出文件到数据库
$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"]." ";
echo "〈a href= \"download.php?ID=".$row["ID"]."\"〉检查Word文档〈/a〉〈br〉";
}
//end of file show.php
?〉
会见文件show.php,用户看到的是团体扼要信息的列表。点击“检查Word文档”,便可看到对应成员具体的团体简历。
Word文档的显示是用上面的文件:
〈?
// begin of file download.php
$LinkID=@mysql_connect("localhost", "root" , "") or die("不克不及毗连到数据库办事器!多是数据库办事器没有启动,或用户名暗码有误!");
$DBID = @mysql_select_db("ResumeDB",$LinkID) or die("选择数据库失足,多是您指定的数据库不存在!");
$query = "select ResuFile from Resume where ID=$ID";
//$ID为挪用传递的变量
$result = @mysql_query("$query",$LinkID);
//履行查询,从数据库读取文件内容
if(mysql_num_rows($result) 〈 1 )
{
echo "没有找到响应的文件!";
exit();
}
$row = mysql_fetch_array($result);
$mFileData = $row["ResuFile"];
//读取团体简历的内容(Word文件格局的数据)
header("Content-type: application/msword");
//发送头信息,申明将要发送的数据为word文档
echo $mFileData;
//发送文档数据
//end of file download.php
?〉
至此,咱们已完成了团体简历的提交、数据库存储、信息阅读等功效,根基完成了“人才网信息交换”的框架功效。
需求申明的是,经由过程PHP停止文件上载及数据库存储是个较凸起的手艺困难。良多关于PHP的网站都不休呈现这类成绩。这些操作,对平台、情况设置依附性较大。分歧的平台设置装备摆设,都能够招致操作的掉败。本文前面附了上述法式的运转平台、编译参数,以供参考。 在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 实践是检验自己会不会的真理。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
页:
[1]