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

操作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>

 

 

智能手机大局已定 HTC难扭转乾坤? 比谷歌手表更酷!基于大数据分析的睡衣 众投资金:改变了移动游戏开发的一切一切 这些科技产品和革新或在今年“横空出世”?! 现代Objective-C七宗罪 Google工程总监Ray Kurzweil意欲打造“虚拟朋友” 惠普开源JavaScript框架Enyo更新:支持桌面和移动平台 分析:三星或将成为科技行业第五巨头 是真的 诺基亚真有可能推Android手机 如何打造IE10的指尖触碰式用户体验 SUSE全球OEM联盟总监:为何SAP HANA只选择SUSE? 推荐2013年最佳PHP开发框架 Patrick Wyatt:代码没问题 程序却有bug? NoSQL的可靠性及扩展操作 最新Skype加密技术:“无声”通话能躲过FBI监听 谷歌锁死SDK,能阻止Android碎片化吗? KitCam团队专访:为应用做加法也能雄踞榜首 谷歌哭了:Replicant 4.0 SDK发布搅乱大局 忍者神龟与禅宗启示:如何突破移动广告困境 Linux会是更好的游戏平台?暴雪是这么认为的! 新型恶意软件瞄准Java服务器 AWS被纳为“战略物资”市值或可达到300亿美元? 十张图带你入门Map/Reduce 低端Android野心,Intel发布Atom Z2420处理器 淘宝网的技术发展史(一)——个人网站时代 看Pinterest如何通过架构变化将EC2成本降低了62% 内容vs渠道:法国电信商Free叫板Google 让网站成为应用:Firefox OS掀起革命风潮 屌丝伞兵的逆袭:4人+盛大+远程+最佳手游 新年头彩:Chartboost喜获1900万美元融资 高富帅跻身移动领域 福特开放车载声控API 有谁知道光驱加锁的问题 parodox数据库问题 各位平时用 VC 作东西,都用那些辅助工具?  高分争解 【 http://www.esoftware.com.cn/search.php?condition=%BA%AB%C1%F7%C0%B4%CF%AE&page=1&mode=3 】 JBuilder的使用问题 在VFP中,编程执行SQL语句时,怎样使系统的查询结果不出现? 一个程序流程的问题 为什么当我的SpeedButton的enabled为false时,上面的图标就没有了? 囡囡(baicolt)请进,问你一点事情 简单问题,请赐教 高分相赠!!!:操作系统和SQL SEVER2000都是英文版,用VB连接如何可以正确的输入和显示中文? 则么在程序中得到sql的存储过程的返回值? 请问 VB 6.0 有没有最新的升级文件之类的东西?高分争解 谢谢 谁有用java做的复杂一点的图行界面的例子 网管来看看,为什么不能给分了!右边的文本框又不见了! 各位用 VB 编程都用那些辅助工具? 高分争解 关于ShellExecute 装了redhat7,在/etc里没有inetd.conf文件,谁见过这咋整 菜鸟请教大侠!很急!谢谢!!只有10分对不起! 请问一个关于CLASSWIZARD 的问题 这里有PB反编译程序,你信吗? 怎样解 关于大数据量的问题,经验丰富者里面谈! 我想在程序里控制程序外的浏览器窗口资源管理器窗口,怎么做呢?急呀!!!!!! 请问:我用JavaMail收下的邮件主题,发信人姓名不能正常显示。。。。。 认识我的人都进来跟我聊聊吧,我最近新换了工作,还没有适应,你们各位是怎么换工作? 请问如何在Delphi中表示二进制,或者十六进制数呢? 各位35以后干什么?我们能干什么? ????? 如何将eltree中的数据和某数据表关联 有没有比RECORDCOUNT快的方法实现同样的功能? 鉴于目前有些东西说话不知轻重,把这个旧闻再贴一遍,不要以为真的在网上 “没人知道你是一只狗” Java 工具 怎样解决vb中编译成exe文件中出现的问题? 你别说国企,只要是沾的国企的气味就他妈的黑! api函数我不懂。 我要开发一个网络监听的程序,捕获所有以太网中所有的帧,象NT和Win2000中的网络监视器一样 找了半天,看不到一个熟人,认识的过来报到 请问哪里有下载jdk啊? 问题征集算法 偶烦!偶郁闷!咿呀~~~~~~~~老哥进来安慰偶。。。。快!快!快!!! 在ListView中,如何象Windows资源管理器那样将剪贴了的文件图标变虚? 清华大学的学生素质真差 打开数据库为什么出错? WinCE的串口通讯读和写之间有相互制约的问题吗? 强烈抗议IBM蓝色“快”车服务的速度和质量!!各位同志请帮我广帖出去! outlook 求助 jsp的小问题 关于cjlib中显示中文的问题 山东快书 《武松上网》 送给大家一张图片,开开心心灌水,快快乐乐上班 各位高手,老题新问 化学方程式化合价配平 氢化钙 钙鉴别能用与水反应生成的氢气的量吗物质的量相同 只用一种试剂一次性就能验证锌、铜、银三种金属活动性强弱,该试剂为( )A 硫酸铜溶液 B 硫酸锌溶液 C 硝酸银溶液 D 稀盐酸 化学方程式配平利用化合价升降的方法 为什么登山制取氢气用氢化钙而不电解水?制取同等质量的氢气需要的水的质量要比氢化钙要少,负担更少,而且电解水还能产生氧气,为社么登山制取氢气用氧化钙而不电解水? 要验证锌、铁、铜三种金属的活动顺序,可选用(?),为什么?A.Cu.FeCl2.Zncl2B.Fe.CuSO4.ZnCl2C.Zn.CuO.FeSO4D.Fe.Cu.ZnCl2那如果是:A.Fe、Cu、Zn(NO3)2溶液。B.Cu、FeCl2溶液、ZnCl2溶液C.Zn、CuSO4溶液、FeSO4溶液 如何用化合价升降配平化学方程式 化学题设计个过氧化钠的小实验过氧化钠保存不当容易变质1,某过氧化钠样品已经部分变质,请设计实验,限用一种溶液,证明过氧化钠已经变质2,检验样品中还有过氧化钠的方法是都回答得很好 1 能用于证明锌 铜 银的金属活动性顺序的一组试剂是()A 铜 银 硝酸锌溶液 B 锌 银 硝酸铜溶液 稀硫酸 C 锌 铜 稀硫酸 硝酸银溶液 D 锌 铜 银 稀硫酸 我认为b c都行,1 能用于证明锌 铜 银的金属 在一个化学反应式中同一元素在反应前后化合价能变么? 设计试验(化学)现在就要!1.设计试验证明二氧化碳具有下述性质:(1)二氧化碳的密度比空气的大;(2)二氧化碳能溶与水.2.设计实验证明汽水中含有二氧化碳.(别太复杂) 甲同学为探究铝、铁和铜三种金属的活动性、甲同学为了探究铝、铁和铜三种金属的活动性,他用铜丝、铁丝、铝丝和稀盐酸四种试剂,设计了以下只用一支试管,取一次盐酸的探究方案.⑴请你 求一个化学方程式:反应前后元素的化合价没有改变的化合反应 化学设计实验现有一白色粉末是由氯化钠、硫酸钠中的一种或两种共同组成.给你四种溶液:硝酸银溶液、氢氧化钠溶液、碳酸钠溶液、硝酸钡溶液,要你证明此粉末只由硫酸钠组成(两步). 为测定铁.铜和银的金属活动性顺序,下列不能达到目的的是:A Ag、Fe、CuSO4溶液B Ag、FeSO4、CuSO4溶液C Fe、Cu、AgNO3溶液D Cu、FeSO4、AgNO3溶液原因 正确答案我知道 是 B、C 化学反应方程式与化合价的问题是不是还有一种情况用对应符号的问题 HCL~H 这样的写法.问题主要在这里:这种对应符号的写法与化合价有关系么?为什么?我的问题来源于这个方程式的疑问 求5篇化学家庭实验 实验报告拜托各位高手帮我找5篇家庭小实验的实验报告包括目的.步骤.现象.结论注意:要是家里能做的实验.最好是收集沼气,、葱汁写密信、收集沼气.要5篇啊,谢谢如果 下列各组物质能证明铁 银 铜的金属活动性强弱的是A 铁 硫酸铜溶液 硝酸银溶液 B 铁 铜 硝酸银溶液C 银 铜 氯化亚铁溶液 D 铁 银 硫酸铜溶液不然我还是不会做 化学方程式物质化合价如何改变?有的方程式反应前后化合价改变,比如三价铁反应后变成二价铁,这样的规律是什么? 利用下列各组反应,能够验证铁、铜、银三种金属活动性顺序的是利用下列各组物质之间的反应,能够验证铁、铜、银三种金属活动性顺序的是( ) A、氯化亚铁溶液、铜、银 B、氯化亚铁溶液、 小刚设计实验探究铁、铜、银三种金属的活动性顺产并分析相关问题.请填空: ⑴他设计的四种实验方案 关于化学方程式与化合价.“O正上方一个-2”中-2代表什么?“2O”的O右上方有一个-2,这个-2代表什么? 利用下列各组物质之间的反应,能够验证铁、铜、银三种金属活动性顺序的是(  )A、氯化亚铁溶液、铜、银B、氯化亚铁溶液、氯化铜溶液、银 C、铁、氯化铜溶液、银 D、氯化铁溶液、铜 验证铜 镁 铁 金属活动性的实验? 怎么用化合价写化学方程式比如Fe+O2--- 怎么写后面的生成物、、怎么用化合价写他们下面的小数字、 利用下面各组物质之间的反应,能够验证铁,铜,银三种金属活动性顺序的是( )A.氯化亚铁溶液,铜,银B.氯化亚铁溶液,氯化铜溶液,银C.铁,氯化铜溶液,银D.氯化铁溶液,铜,硝酸银溶液我觉得应 证明镁,锌,铁,铜,银的活动性顺序实验设计这个实验的过程,与结论 为什么氢氧化钙的化学式是Ca(OH)2?为什么氢氧化钙的化学式Ca(OH)2和其他有些物质的化学式要加括号?是因为这样简便些么? 设计实验关于判断铝铁铜的金属活泼性强弱顺序4种方案 用实验证明锌和铜两种金属的活动性顺序时,可选用的试剂是用稀硫酸好还是用氯化锌好 硝酸HNO3和氢氧化钙Ca(OH)2 什么试剂能直接验证铝 铁 铜的活动性顺序 辨别金属活动性的实验:铁铜锌 氢氧化钙化学式Ca(OH)2 为啥oh要加括号 证明铁、铝、铜三种金属的活动性顺序,选用哪些试剂?A 盐酸、硝酸银溶液B 盐酸、氯化亚铁溶液C 硝酸、硝酸铜溶液D 氯化镁溶液、硫酸铜溶液为什么? 无机化学题 解释 分别在 硝酸汞溶液和硝酸亚汞溶液中 逐滴滴加钾碘化钾,(1)分别有什么现象(2)当碘化钾 过量时,有分别有什么现象. CaH2 + 2H2O====2H2 + Ca(OH)2.氧化剂与还原剂的比值是多少? 铝、铁、铜是人类广泛使用的三种金属,与我们生活息息相关.3)用下列试剂验证这三种金属的活动性顺序,能达到目的是 (填序号). A.硫酸铝溶液 B.硫酸亚铁溶液 C.硫酸铜溶液 选什 硝酸汞中汞的化合价是多少? 化学变化的分辨有放热,发光,生成沉淀,生成气体或颜色变化现象发生的一定是化学变化吗?请各举一例加以说明 为验证铁、铜、铝三种金属的活动性顺序,可选用的一组物质是(  )A.FeSO4溶液、Cu、AlCl3溶液B.CuSO4溶液、Fe、AlC13溶液C.CuSO4溶液、Fe、AlD.AlCl3溶液、Fe、Cu我知道答案是B,我想知道C为 下列各金属分别投入硝酸汞溶液中,不能置换出汞的是()下列各金属分别投入硝酸汞{Hg(NO3)2}溶液中,不能置换出汞的是( )A.Zn锌B.Fe铁C.Ag银D.Cu铜另外原因是什么?它们的活动性由强到弱怎样 怎么区分物理和化学变化酒精蒸发是什么变化 怎样证明铝、铁、铜三种金属的化学活泼性大小,解释为什么这三种金属只有铁最容易生锈. 在硝酸汞中汞显几价,关于这个化合价的取值有什么特殊规律吗?还有我是在写化学式的过程中出现的问题不能按化学式为零的方法算啊,我是说,在写化学方程式的过程中如何判断有多价的 和化学变化的区别在于? 设计实验探究铝和铜的金属活动性大小顺序要实验的具体步骤材料:硫酸铜,铝片,试管……(是先放硫酸铜进试管还是先放铝片?) 铜与硝酸汞反应的现象 如何区分化学中物质的性质与变化举出具体事例说明 用Fe,ZnSO4溶液,CuSO4溶液,验证锌、铁、铜三种金属活动性顺序,可不可以? 加热铜丝的现象 现象和变化的区别 铜是金属活动性弱的金属,那么怎么配置硫酸铜溶液 铜丝加热后的现象请问铜丝加热后会有什么现象? 如何利用化合价升降给化学方程式配平 登上运动员用氢化钙CaH2固体提供能源有什么优点 验证铝和银的金属活动性顺序用稀盐酸还是硫酸铜?这俩不都行吗? 利用化合价升降配平化学方程式FeTiO3+C+Cl2 --- TiCl4+FeCl3+COTiCl4+O2 --- TiO2+Cl2 能否用燃烧现象鉴别氢化钙和钙? 铝和硫酸铜溶液反应Al+CuSO4+H2O=?不是置换反应,是生成沉淀的那种
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn