说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

操作MySQL数据库实现简单的留言板-PHP初学入门教程11

HTML文档下载 WORD文档下载 PDF文档下载
通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。在这一节里我们主要以在互联网上跟PHP一起使用得最多的MySQL数据库为例,介绍一下相关的MySQL数据库的操作函数以及数据库的基本操作等方面的知识。

 

10. PHP最大的特色就是操作数据库的能力特别的强大,PHP提供对多种数据库的支持。

 

  通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。在这一节里我们主要以在互联网上跟PHP一起使用得最多的MySQL数据库为例,介绍一下相关的MySQL数据库的操作函数以及数据库的基本操作等方面的知识。

 

在MySQL数据库中,我们用来连接数据库的函数有两个,它们分别为:

 

integer mysql_connect(string host,string user,string password);integer mysql_pconnect(string host,string user,string password);
mysql_connect函数和mysql_pconnect函数都是对指定主机上MySQL数据库的连接,如果该数据库位于一个不同的端口,则可以在主机名后加上冒号和端口号。函数的参数也可以缺省不填,如果不填参数,默认的主机名是“localhost”,用户名为数据库管理员,默认值为“root”,密码为空。与数据库连接成功之后,这两个函数都可以返回一个连接号,如果连接失败,则返回一个false值。让我们来看看下面几句语句:
<?$db=mysql_connect("localhost","user","password");mysql_select_db("mydb",$db);?>
注释:
$db=mysql_connect("localhost","user","password"); 我们将mysql的链接参数,包括主机名、用户名和密码作为mysql_connect()的参数,同时得到返回值为$db,这样,在下面的语句中,我们就可以将变量$db作为一个连接mysql数据库的连接号来使用。
mysql_select_db("mydb",$db); 将PHP程序链接到mydb数据库中,这样程序与数据库的链接就完成了。
10.1 一个简易的数据库留言簿
  在完成数据库的链接之后,我们就可以对数据库进行一系列的操作。下面是一个简易的数据库留言簿程序(guestbook.php3):
  我假设你机子上的MySQL数据库以及管理MYSQL数据库的工具 Phpmyadmin_2. 0.5都已经安装完成,并且可以正常工作。
我们要做的第一件事情是创建一个留言数据库,假定名字为: mydb。
1、启动浏览器,打开Phpmyadmin_2. 0.5 的管理WEB界面。
2、在“Create new database”文本框内输入数据库名称mydb,然后按create按键。
  下一步,我们要在该留言数据库下创建一个数据表,假定名字为: guestbook。
创建该数据表的命令如下所示: 
CREATE TABLE guestbook (ID INT NOT NULL AUTO_INCREMENT, name CHAR(250), email CHAR(250), job CHAR(250), comments BLOB, PRIMARY KEY(ID)); 
最后,将下面的留言簿程序挎贝到你机子的可写目录下面,并保存成guestbook.php3文件。就这么简单,你已经有了自己的留言簿了。 
10.2 留言簿程序(guestbook.php3):
<?php /* $host : your MySQL-host, usually 'localhost' *//* $user : your MYSQL-username *//* $password : your MySQL-password *//* $database : your MySQL-database *//* $table : your MySQL-table *//* $page_title : the title of your guestbook-pages *//* $admin_mail : email-address of the administrator to send the new entries to *//* $admin_name : the name of the administrator *//* $html_mail : say yes if your mail-agent can handle HTML-mail, else say no */$host = "localhost";$user = "";$password = "";$database = "mydb";$table = "guestbook";$page_title = "pert guestbook";$admin_mail = "pert@21cn.com";$admin_name = "Webmaster";$html_mail = "no";?><HTML><HEAD><TITLE><?php echo $page_title; ?></TITLE></HEAD><BODY BGCOLOR="#FFFFFF" LINK="#000000"><FONT FACE="Verdana" SIZE="-2"><?/* connect to the database */mysql_pconnect("$host","$user","$password") or die("Can't connect to the SQL-server");mysql_select_db("$database");/* action=view : retrieve data from the database and show it to the user */if($action == "view") {/* function for showing the data */function search_it($name) {/* some vars */global $offset,$total,$lpp,$dir;global $table,$html_mail,$admin_name,$admin_mail;/* select the data to get out of the database */$query = "SELECT name, email, job, comments FROM $table";$result = mysql_query($query);$total= mysql_numrows($result);print "<CENTER><FONT FACE="Verdana" SIZE="-2"><A HREF="guestbook.php3?action=add" onMouseOver="window.status='Add your name';return true" onMouseOut="window.status='';return true" TITLE="Add your name">加入留言</A></FONT></CENTER><br><br>";if ($total== 0) {print "<CENTER>此刻没人留言</CENTER><br><br>"; }elseif ($total> 0) {/* default */$counter=0;if ($dir=="") $dir="Next";$lpp=5;if ($offset==0) $offset=0;if ($dir=="Next") {if ($total > $lpp) {$counter=$offset;$offset+=$lpp;$num=$offset;if ($num > $total) {$num=$total; } }else {$num=$total; } }elseif ($dir=="Previous") {if ($total > $lpp) {$offset-=$lpp;if ($offset < 0) {$offset=0; }$counter=$offset-$lpp;if ($counter < 0)$counter=0;$num=$counter+$lpp; }else {$num=$total; } }while ($counter < $num) {$j=0;$j=$counter + 1;/* now really grab the data */$i1=mysql_result($result,$counter,"name");$i2=mysql_result($result,$counter,"email");$i3=mysql_result($result,$counter,"job");$i4=mysql_result($result,$counter,"comments");$i4 = stripslashes ("$i4");/* print it in a nice layout */print "<CENTER>n";print "<TABLE WIDTH=400 BORDER=0 ALIGN=CENTER VALIGN=TOP><TR><TD><FONT FACE="Verdana" SIZE="-2">n";print "<HR>n";print "<BR><B>Name:</B> $i1n";print "<BR><B>email:</B><A HREF="mailto:$i2" onMouseOver="window.status='Email $i2';return true" onMouseOut="window.status='';return true" TITLE="Email $i2">$i2</A>n";print "<BR><B>Job:</B> $i3n";print "<BR><B>Comment:</B>n";print "<BR>$i4n";print "</FONT></TD></TR></TABLE>n";print "</CENTER>n";$counter++;}}mysql_close();}/* execute the function */search_it($name);/* See if we need to put on the NEXT or PREVIOUS buttons */if ($total > $lpp) {echo("<form action="$PHP_SCRIPT" method="POST">n");/* See if we need a PREVIOUS button */if ($offset > $lpp) {echo("<input type="submit" value="Previous" name=dir>n"); }/* See if we need a NEXT button */if ($offset < $total) {echo("<input type="submit" value="Next" name=dir>n"); }echo("<input type=hidden name="offset" value="$offset">n");echo("<input type=hidden name="name" value="$name">n");echo("</form>");}}/* action=add : show a form where the user can enter data to add to the database */elseif($action == "add") { ?><TABLE WIDTH="460" ALIGN="CENTER" VALIGN="TOP"><TH COLSPAN="2"><P>请您填写留言</TH><FORM NAME="guestbook" ACTION="guestbook.php3?action=send" METHOD="POST"><TR><TD ALIGN="RIGHT" VALIGN="TOP">您的大名:</TD><TD><INPUT TYPE=text NAME=name></TD></TR><TR><TD ALIGN="RIGHT" VALIGN="TOP">您的E-mail:</TD><TD><INPUT TYPE=text NAME=email></TD></TR><TR><TD ALIGN="RIGHT" VALIGN="TOP">您的工作:</TD><TD><INPUT TYPE=text NAME=job></TD></TR><TR><TD ALIGN="RIGHT" VALIGN="TOP">您的留言:</TD><TD><TEXTAREA NAME=comments COLS=40 ROWS=6></TEXTAREA><P><INPUT TYPE=submit VALUE=Submit> <INPUT TYPE=Reset VALUE=Reset> <A ALIGN="RIGHT" HREF="guestbook.php3?action=view" onMouseOver="window.status='Read all comments first';return true" onMouseOut="window.status='';return true" TITLE="Read all comments first"><FONT SIZE="-2">先观看所有的留言</FONT></A></TD></TR></FORM></TABLE></CENTER><?}/* action=send : add the data from the user into the database */elseif($action == "send") {/* check if a HTML-mail should be send or a plain/text mail */if($html_mail == "yes") {mail("$admin_name <$admin_mail>","PHP3 Guestbook Addition","<HTML><BODY><FONT FACE="Century Gothic"><TABLE BORDER="0" WIDTH="100%" CELLSPACING="4"><TR>$name ($email) schreef het volgende bericht in het gastenboek :</TR><TR><TD ALIGN="LEFT"> </TD><TD ALIGN="LEFT" NOWRAP> </TD></TR><TR><TD ALIGN="LEFT">$comments</TD><TD ALIGN="LEFT" NOWRAP> </TD></TR><TR><TD ALIGN="LEFT"> </TD><TD ALIGN="LEFT" NOWRAP> </TD></TR><TR><TD ALIGN="LEFT">您的留言:</TD><TD ALIGN="LEFT" NOWRAP>$name</TD></TR><TR><TD ALIGN="LEFT">您的大名:</TD><TD ALIGN="LEFT" NOWRAP>$email</TD></TR><TR><TD ALIGN="LEFT">您的email:</TD><TD ALIGN="LEFT" NOWRAP>$job</TD></TR><TR><TD ALIGN="LEFT">您的工作:</TD></TR></TABLE></BODY></FONT></HTML>", "From: $name <$email>nReply-To: $name <$email>nContent-type: text/htmlnX-Mailer: PHP/" . phpversion());}/* MySQL really hates it when you try to put things with ' or " characters into a database, so strip these...*/$comments = addslashes ("$comments");$query = "INSERT INTO guestbook VALUES('','$name', '$email', '$job', '$comments')";$result = MYSQL_QUERY($query);?><BR><P ALIGN = CENTER>感谢, <?php echo $name; ?>, 您的留言.<BR><P ALIGN = CENTER><A HREF="guestbook.php3?action=view" onMouseOver="window.status='View your comment now';return true" onMouseOut="window.status='';return true" TITLE="View your comment now">观看留言</A><BR><BR><?}/* if there's no action given, then we must show the main page */else {/* get the number of entries written into the guestbook*/$query = "SELECT name from guestbook";$result = MYSQL_QUERY($query);$number = MYSQL_NUMROWS($result);if ($number == "") {$entry = "还没有人留过言"; }elseif ($number == "1") {$entry = "目前留言人数1人"; }else {$entry = "目前留言人数 $number 人"; }echo "<CENTER><BR>";echo "<P>$entry<BR>";echo "<H4><FONT FACE="Verdana" SIZE="3"><A HREF="guestbook.php3?action=add" onMouseOver="window.status='请您留言';return true" onMouseOut="window.status='';return true" TITLE="Add your name to our guestbook">请您留言</A></FONT></H4>";if ($number > "") {echo "<H4><FONT FACE="Verdana" SIZE="3"><A HREF="guestbook.php3?action=view" onMouseOver="window.status='观看留言';return true" onMouseOut="window.status='';return true" TITLE="View the names in our guestbook">观看留言</A></FONT></H4>"; }echo "</P></CENTER>";}?><BR><SMALL><CENTER>版权所有:<A HREF="http://www.okbase.net">好库网</A></CENTER></SMALL></FONT></BODY></HTML>

 

 

微信开发者大会陶瑾:如何玩转微信支付功能的原理和开发 560亿PV+7.3亿用户,Reddit是如何做到的? 打造安全界的希波克拉底誓言文化 极客的春天来了! Mozilla COO宫力:老牌操作系统如何助力新一代智能电视 App提高用户留存率新招:应用性能监测 韩国手游市场规模超万亿 2014中韩手游项目对接会开幕在即 SanDisk发展之路:专注SSD、推新产品线 AMD发展线路图曝光,欲造500+平方毫米GPU 全球移动开发者:IAP降温,企业应用成待掘金矿 Vuforia 2014 视觉大奖赛:寻找最炫酷AR增强现实应用,迈向巅峰! MapReduce谢幕,谁将成为最终的接棒者? 变身音乐控制器!开源JavaScript库NexusUI 从112台服务器到Q2 50亿基础设施开销,谷歌只用了15年 【技术文章】微信公众平台开发教程新手解惑40则 Qualcomm承诺投入1.5亿美元 扶持中国初创企业 物联网多了把“新板凳” 联想推三款智能硬件 .NET技术+25台服务器怎样支撑世界第54大网站 基调网络发布听云平台:“听”懂App性能 《近匠》豌豆荚李大海:用搜索敲开手机娱乐平台之门 微信开发HTML5轻游戏中的几个坑 【微信大会】企业号、支付功能、智能客服与LBS、电商开发解析 【CTO俱乐部走进海尔】活动图文直播进行中 燃料电池商业化,数据中心或将永不断电? 广告教父的哲学:值得F2P游戏借鉴的8条经验 UC李云:基于Chromium的浏览器如何打造更好体验 一周消息树:颠覆互联网思维?年薪50万码农转行卖凉皮 Coconut2D:跨平台2D游戏及应用开发工具 第八届中国大数据技术大会将于12月中旬隆重召开 10个常见的缓存使用误区 用户暴增下的收入降低,AWS面临尴尬 云数据中心选址PK:微软第一,IBM第二,谷歌最少 Full Text: Bush Speech Aboard the USS Abraham Lincoln 请问 怎么实现变量互换阿 我是新手~~~ FAT错误,请问如何修复? flashget那个小方框怎么做? 谁有《UML与Rational Rose2002从入门到精通》书的选配光盘 急!!!随机函数 FAT错误,请高手帮忙修复。 内部消息(我对我说的负责) 不定时开放FTP服务器 急,求救!!! 一个很简单的问题. 为什么 “基本图象处理代码(1) ehom(原作)”对grayscale不对? linux下的oicq 有马? 帮帮我,好吗,感谢,非常 help,help,sql query question? 大家认为考研考进其他学校(且跨专业)的可能性有多大 显示图片 数据库搜索的一个怪问题 共享上网问题!急~!!!! 句柄和指针有什么区别吗? 大虾快进来,帮帮兄弟们!!!再现等待!高分!! 请问C++Builder的程序中能不能使用*.mdb类型的数据库? 帮帮忙!!个位大哥 请问用java编程能实现数据采集的程序并进行传输(即c/s模式)吗? 请问什么命令找开一个窗体的? 请问:如何从文件中获取icon并得到HBITMAP句柄? 如何在客户端打开一个word文件 MVP是个什么概念???? linux启动不了,Bringup loopback interface时出错,请问是什么原因? 帮帮忙!! 我海军一艘潜艇失事 70名官兵不幸全部遇难!! 明天朋友结婚,征集整人的法子 是谁删除了我贴?? 而且没有跟我说一声!!! 白天工作,晚上溜狗,爽呀!比大暑天喝了冰镇雪碧还爽! 我的jsp服务器是iis+TOMCAT+win2000pro 不知怎的每次用不了多久就显示出 网页无法显示 目前访问该 Web 站点的用户过多,我只是自已用怎么 终于有星了,高兴,散分(第一次散分,请斑竹手下留情) 我的刚装的2000进入启动界面时,进度条读到2/3时就蓝屏了! 请问在运行时向ActiveX控件中添加ActiveX控件的方法是什么? 高手请进:如何在WinNT以上系统进行BIOS读取! 毕业设计的问题,请各位大哥帮小弟一个忙 备份与恢复 数据备份与恢复 我用win2k,下载了php4.3.1,extension_dir是c:\php\ext 可是里面没有php_gd.dll,怎么办,到哪里可以down一个补上? 帮我一下:解决中文问题 新手问题:怎么在用ATL COM WIZARD已生成的dll加入MFC 请问如何删除系统? warton给大家散分来了! 求助,请问哪儿提供的域名空间最好? 新手上路,VB中用ODBC连接ACCESS 关于ORACLE中(多)表的备份和恢复问题 MM``狂给分^*^ 找人一同研究JUnit对于数据库的测试架构 质量316g的铁块,体积是多少、(P铁=7.9×10三次方kg/m三次方—) What's in it 其中代词 it 指什么? 核舟记作者将人物情态描写得栩栩如生主要有什么作用 若该项试验始终在黑暗中进行,有机物含量不断减少,原因是 what's in it for them 是什么意思what's in it for them 谢谢 I have mutton for dinner.划线提问(mutton划线) 幼苗体内的有机物含量在黑暗中不断减少的原因(两点) most people think bicycles are much safer than other vehicles 玻璃的密度是1.5————,在数字后填上合适的单位 秋天温带地区植物的树叶落下的主要原因是为了降低 A蒸腾作用 B有机物的消耗 most people think bears are stupid, but in fact they are quiet clever为什么不能用foolish We have chicken for dinner.(改为一般疑问句并做肯定回答) 小李以一定的初速度将石子向斜上方抛出去,石子所做的运动是斜抛运动,他想:怎样才能将石子抛得更远呢?于是他找来小王一起做了如下探究:他们用如下图所示的装置来做实验,保持容器水 把一块长120厘米,宽80厘米的塑料板裁成面积相等的正方形而且没有剩余,最少可以裁 she doesn't have chicken for dinner(改肯定) 某人站在地面向斜上方抛出一个物体,物体的运动轨迹是是抛物线型的,问该物体抛出时的速度和落地后的速度是否一样?下面有2种答案吖! 做斜抛的物体到达最高点时加速度为什么不为零?RT 核舟中刻画人物栩栩如生,作者祥写船头三人的神情是为了说明什么? 向斜上方抛出一个石子,说明石子为什么不沿着抛出的方向做直线运动? 做斜抛运动的物体到达最高点时,A C合力为零 D加速度为零 have,chicken,on,Tuesday,We,dinner,for连词成句 速度为零能否说明物体没有运动?有没有这样一种情况:物体速度大小为零但有运动方向?若有请举例? 斜抛物体到达最高点后,水平分速度起到什么作用 用两个完全一样的梯形拼成一个底和高都是12dm的平行四边形,每个梯形的面积是多少dm? 修 改病句制度的优越、国力的强大是中国撤离在利比亚人员行动能否取得成功的坚实基础.学校开展的“感恩、奋进”活动,掀起了同学间互帮、互助、互学、互进,增进了彼此的友谊. VIETNAMESE RESTAURANT怎么样 what与how在宾语从句如何使用 这片土地是圣神的 ‘每一片土地都是神圣的’这句话改成比喻句怎么改? 关于撑杆跳高我今年20岁…身高1米85,体重65公斤…刚开始接触撑杆跳高…请问一般要多长的时间才有可能突破4米的成绩?3年时间可以达到吗, 这片土地是圣神的主要内容 What's in a name According to Shakespeare's“What’s in a name?”According to Shakespeare’s Romeo and Juliet,there is not too much.“That which we call a rose by any other name would smell as sweet.”But Shakespeare may have been wrong.I 验证机械能守恒如何减小误差除了多次测量取平均值还有什么? he still hasn't got used to___ (live) in the city since he came here 3 years ago. What's the name of the sport ____ you go in a boat 撑杆跳高规则是怎样的选手从4.50米开始,是不是只要每次都试跳成功,就能一直向下一高度挑战? he ofen came to see me ---he live here A.while B.since 及解析live改为lived 光滑曲面上自由下落,机械能守恒吗 英语翻译例如the first students ,the first 2 dimensions~求教~ 第二题,B项里在最高点时向心加速度为零吗? What's in a Name n为什么要大写 下列关于运动与加速度的关系,下列说法中错误的是 A 加速度一定为零 B速度变大,加速度一定变大下列关于运动与加速度的关系,下列说法中错误的是A 加速度一定为零 加速度一定变大C 加速 急.若a÷1/2=b÷4/3=c÷5/5,且a、b、c都不为零,试比较a、b、c的大小,并说明理由.如上若a÷1/2=b÷4/3=c÷5/5,且a、b、c都不为零,试比较a、b、c的大小,并说明理由.要比较,以及理由,快 what's the name ___ the movie?Find Nemo.A.inwhat's the name ___ the movie?Find Nemo.A.in B.of C.at 如果从3千克的海水中可以提炼68.1克盐那么重二十千克这样的海水中可以提炼多少盐 做匀变速直线运动的物体,在第2 s内位移为6 m,第5 s内位移为零,则其初速度是______m/s 在下列所述的物体中,机械能守恒的有 A做平抛运动的物体 B 被匀速吊起的集装箱 C光滑曲面上自由运动的物体D 物体以4\5g的加速度竖直向上做匀减速运动 四斤苹果和三斤香蕉的价钱是一样的.苹果比香蕉贵三元.问香蕉和苹果的单价各是多少?要有清晰的解释.比且要能够让四年级的学生能够理解. 求解释关于合力分力的问题 如图所示,挑水时,水桶绳子分别为a,b,c三种情况,哪种情况下绳子最容易断 早饭喝一点牛奶有助于你开始新的一天drinking some milk for breakfast ___ you ___ a ____ ____ 竖直上抛运动的物体,到达最高点时A、具有向上的速度和向上的加速度 B.C.D.具有向下的速度和向下的加速度 如图所示,a,b,c三根绳子完全相同,其中b绳水平,c绳下挂一重物.若使物体加重,则这三根绳子中最先断的是 what s in 斜抛运动到达最高点时,速度为0?or合力为0?a为g?竖直加速度为0?到底哪个是正确的啊?! 挑水时,水桶上的绳子的状况分别是abc三种.则绳子在__种情况下容易断些c在最低处.所成的角度最大 a在最高处 所成角度最小 what's in it 一个平行四边形的底于高分别为3.2分米和1.它的面积与一个梯形的面积相等,如果梯形的上底和下底分别为2.4分米和3.6分米,那么它的高是几? 用绳子系住水桶提水,手受到竖直向下的力,它的施力物体是A水桶B绳子C手D地球 Most people think ---are wining SARS.A/ours B/ourselves C/we D/us 一个梯形的下底是上底的3倍\如果把上底延长8分米就变成了一个底和高相等的平行四边形\这个梯形的面积是...一个梯形的下底是上底的3倍\如果把上底延长8分米就变成了一个底和高相等的平 澳报:沙特拒安理会席位系赌气?沙特拒入安理会不只是赌气沙特拒绝安理会席位 日媒谋取而代之反联合国合唱”在中东响起 地区大动荡俄罗斯富豪赠女友奢华电子香烟 镶24南非一警察开枪打死津巴布韦外交官黑白简约揭幕多伦多2014春季时装周法政府严打剥削实习生现象 重申实习期以开放促改革:中国的特区美秘密窃听法公民惹怒法总统 法紧急召美国财政僵局刚解 共和党就医改法案再英14岁少年被控5次性侵 3宗案件发分析:美国就业数据疲弱 美联储料谨慎德社民党同意正式谈判 协议达成或需4本网记者乘坐加总理专机赴北极:近距离联合国负责人称叙政府充分合作 销毁化日法庭审判过程遭偷拍 视频上至网络引澳维州建筑工抱怨外国劳工抢饭碗批工会伊朗强硬派质疑伊核谈判中本国代表让步美妇人陪审时哺乳幼儿被法官以藐视法庭伦敦中国城抗议“歧视性”搜捕黑工举行打击网上非法售药 天津市目前仅一家网省藏医院专家赴尖扎敬老院义诊马顺清在海东市调研强调科学制定规划运西部矿业博士后工作站引进七名博士为群众服务是共产党人的天职 苏宁深入两性养生:50岁比30岁更有性爱激情防秋燥营养丰富 秋季水果状元榜两性养生:什么时段男人最“没用”神秘而美丽的康斯坦丁宫 航拍G20峰我驻英大使刘晓明在英媒发表文章 强调多措并举整治易涝点深汕心连心情感两性:十类男人易被女人踹下床市政府邀专家论证“深隧” 有人质疑有修深隧关乎\"几百亿\"资金 专家质广州修建第二机场有无必要?专家:提前商品房住户出行有楼巴 保障房住户只能弗格森自传10月24日发行 描述红魔政府工程将引入公众参与济南军区实打实修 59坦克被击穿40河北省委召开省直单位教育实践活动交流
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘