仓酷云

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

[学习教程] PHP网页编程之PHP 若何向 MySQL 发送数据

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

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

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

x
看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?mysql|数据   你应当对 HTML 表单对照懂得了,上面的一段代码是一个很复杂的 HTML 表单:

< html>

< body>

< form action=submitform.php3 method=GET>

姓 : < input type=text name=first_name size=25 maxlength=25>

名 : < input type=text name=last_name size=25 maxlength=25>

< p>

< input type=submit>

< /form>

< /body>

< /html>

  当你输出数据,并按下 submit 按钮后,这个表单将把数据发送到 submitform.php3 。再由这个 PHP 剧本来处置收到的数据,上面就是 submitform.php3 的代码:

< html>

< body>

< ?php

mysql_connect (localhost, username, password);



mysql_select_db (dbname);

mysql_query ("INSERT INTO tablename (first_name, last_name)

VALUES ('$first_name', '$last_name')

");

print ($first_name);

print (" ");

print ($last_name);

print ("< p>");

print (" 感激填写注册表 ");

?>

< /body>

< /html>

  在代码的第三行中的 "username" 和 "password" 分离代表你上岸 MySQL 数据库的账号和暗码。在第五行中的 "dbname" 暗示 MySQL 数据库的称号。在第十三行中的 "tablename" 是数据库中的一个数据表的称号。

   当你按下 submit 以后,可以看到你输出的名字被显示在一个新的页面中。再看一看阅读器的 URL 栏,它的内容应当是像如许的:

… /submitform.php3?first_name=Fred&last_name=Flintstone

  由于咱们用到的是表单 GET 办法,因而数据是经由过程 URL 来传送到 submitform.php3 的。明显, GET 办法是有局限性的,当要传递的内容良多时,就不克不及用 GET 了,只能用 POST 办法。但不论用甚么办法,当数据传送完成后, PHP 主动的为每个表单中的字段创立一个和他们的名字(表单的 name 属性)不异的变量。

   PHP 变量都已用一个美元符号开首的,如许,在 submitform.php3 剧本处置的过程当中,就会有 $first_name 和 $last_name 这两个变量了,变量的内容就是你输出的内容。

   咱们来反省一下你输出的名字是不是真的被输出到数据库中了。启动 MySQL, 在 mysql> 提醒符下输出:

mysql> select * from tablename;

  你应当可以失掉一个表,内容就是你方才输出的了:

+------------+------------+

| first_name | last_name |

+------------+------------+

| 柳 | 如风

+------------+------------+

1 rows in set (0.00 sec)

   咱们再来剖析一下 submitform.php3 是若何任务的:

   剧本的入手下手两行是:

mysql_connect (localhost, username, password);



mysql_select_db (dbname);

  这两个函数挪用用来翻开 MySQL 数据库,详细的参数的寄义方才已说过了。

   上面的一行是履行一个 SQL 语句 :

mysql_query ("INSERT INTO tablename (first_name, last_name)

VALUES ('$first_name', '$last_name')

");

   mysql_query 函数就是用来对选定的数据库履行一个 SQL 查询。你可以在 mysql_query 函数中履行任何的 SQL 语句。被履行的 SQL 语句必需作为一个字符串用双引号括起来,在个中的变量要用单引号括起来。

   有一个要注重的工作: MySQL 的语句要用一个分号 (;) 停止,一行 PHP 代码一样也是如许,然而在 PHP 剧本中的 MySQL 语句是不克不及有分号的。也就是说,当你在 mysql> 的提醒符下输出 MySQL 号令,你应当加上分号:

INSERT INTO tablename (first_name, last_name)

VALUES ('$first_name', '$last_name');

   然而假如这个号令呈现在 PHP 剧本中,就要去失落谁人分号了。之所以如许做,是由于有的语句,如 SELECT 和 INSERT ,有无分号都可以任务。然而还有一些语句,如 UPDATE ,加上分号就不可了。为了不费事,记住这条划定规矩就行了。

PHP 若何从 MySQL 中提取数据

  如今咱们创立别的一个 HTML 表单来履行这个义务:

< html>

< body>

< form action=searchform.php3 method=GET>

请输出您的查询内容 :

< p>

姓: < input type=text name=first_name size=25 maxlength=25>

< p>

名 : < input type=text name=last_name size=25 maxlength=25>

< p>

< input type=submit>

< /form>

< /body>

< /html>

  一样,还要有一个 php 剧本来处置这个表单,咱们再创立一个 searchform.php3 文件:

< html>

< body>

< ?php

mysql_connect (localhost, username, password);



mysql_select_db (dbname);

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

$result = mysql_query ("SELECT * FROM tablename

WHERE first_name LIKE '$first_name%'

AND last_name LIKE '$last_name%'

");

if ($row = mysql_fetch_array($result)) {

do {

print $row["first_name"];

print (" ");

print $row["last_name"];

print ("< p>");

} while($row = mysql_fetch_array($result));

} else {print " 对不起,再咱们的数据库中,没有找到合适的记载。 ";}

?>

< /body>

< /html>

   当你在表单中输出了要检索的内容,再按下 SUBMIT 按钮后,就会进入一个新的页面,个中列出了一切婚配的搜刮了局。上面再来看看这段剧本究竟是如何完成搜刮义务的。

   后面的几条语句和下面讲到的一样,先是创立数据库毗连,然后选定命据库和数据表,这些是每一个数据库使用所必须的。然后有如许的几条语句:

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

   这几行用来反省表单的各字段是不是为空。要注重的是那两个等号,由于 PHP 的语法大多源于 C 言语,这儿等号的用法也同 C 一样:一个等号是赋值号,两个等号才代表逻辑等于。还应当注重的是:当 IF 后前提为真时,前面要履行的语句是放在“ { ”和“ } ”中的,而且个中的每条语句前面都要加上分号暗示语句停止。

   百分号 % 是 SQL 言语的通配符,了解了之一点后,就该晓得这两行的意思了:假如“ FIRST_NAME ”字段为空,那末将列出一切的 FIRST_NAME 。前面的两句也是一样的意思。

$result = mysql_query ("SELECT * FROM tablename

WHERE first_name LIKE '$first_name%'

AND last_name LIKE '$last_name%'"

");

  这一行完成了搜刮的大局部任务。当 mysql_query 函数完成一个查询后,它前往一个整数标记。

   查询从一切的纪录当选出那些 first_name 列和 $first_name 变量不异,而且 last_name 列和 $last_name 变量值也不异的纪录,放到暂存的纪录集中,并用前往的整数作为这个纪录集的标记。

if ($row = mysql_fetch_array($result)) {

do {

print $row["first_name"];

print (" ");

print $row["last_name"];

print ("< p>");

} while($row = mysql_fetch_array($result));

} else {print " 对不起,再咱们的数据库中,没有找到合适的记载。 ";}

  这是最初的一步,就是显示局部了。 mysql_fetch_array 函数先提掏出查询了局的第一行的内容,在用 PRINT 语句显示出来。这个函数的参数就是 mysql_query 函数前往的整数标记。而 mysql_fetch_array 履行胜利后,纪录集指针会主动下移,如许当再一次履行 mysql_fetch_array 时,失掉的就是下一行记载的内容了。

   数组变量 $row 被 mysql_fetch_array 函数创立并用查询的了局字段来填充,数组的每个份量对应于查询了局的每个字段。

   假如有合适的记载被找到,变量 $row 不会空,这时候就会履行花括号中的语句:

do {

print $row["first_name"];

print (" ");

print $row["last_name"];

print ("< p>");

} while($row = mysql_fetch_array($result));

  这是一个 do … while 轮回。与 while 轮回分歧的是,它是先履行一遍轮回轮回体,然后在反省轮回前提是不是知足。因为已晓得在记载集不为空的情形下,一定最少要把轮回体履行一遍,所以应当用到的是 do … while 而不是 while 轮回了。在花括号中的就是要履行的轮回体:

print $row["first_name"];

print (" ");

print $row["last_name"];

print ("< p>");

   然后就是反省 while 前提是不是知足。 Mysql_fetch_array 函数再次被挪用,来失掉以后记载的内容。这个进程一向轮回,当没有下一条记载存在时, mysql_fetch_array 前往 false ,轮回停止,记载集也就被完整的遍历了一次。

mysql_fetch_array($result) 前往的数组,不但可以用字段名来挪用,也能够像普通的数组那样,用下标来援用数组的各个份量。如许,下面的代码还可以写成如许:

print $row[0];

print (" ");

print $row[1];

print ("< p>");

  咱们还可以用 echo 函数来把这四条语句写的紧凑一些:

echo $row[0], " ", $row[1], "< p>";

  当没有任何婚配的记载被找到时,在 $row 中就不会有任何内容,这时候就会挪用 if 语句的 else 子句了:

else {print " 对不起,再咱们的数据库中,没有找到合适的记载。 ";}
  大部分语言的基础,不是说c有多好,而是c相对起手容易学,让你认为这个是编程语言,
山那边是海 该用户已被删除
沙发
发表于 2015-2-4 10:51:25 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
只想知道 该用户已被删除
板凳
发表于 2015-2-5 15:30:48 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
透明 该用户已被删除
地板
发表于 2015-2-6 20:31:35 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
若天明 该用户已被删除
5#
发表于 2015-2-14 02:05:24 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
莫相离 该用户已被删除
6#
发表于 2015-3-5 09:46:14 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
小妖女 该用户已被删除
7#
发表于 2015-3-11 17:36:12 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
乐观 该用户已被删除
8#
发表于 2015-3-12 16:36:41 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
变相怪杰 该用户已被删除
9#
发表于 2015-3-20 00:13:48 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
兰色精灵 该用户已被删除
10#
发表于 2015-3-22 18:11:31 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
admin 该用户已被删除
11#
发表于 2015-3-27 02:14:14 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
金色的骷髅 该用户已被删除
12#
发表于 2015-3-30 17:15:05 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
简单生活 该用户已被删除
13#
发表于 2015-4-7 00:43:31 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
深爱那片海 该用户已被删除
14#
 楼主| 发表于 2015-4-11 17:41:25 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
小魔女 该用户已被删除
15#
发表于 2015-4-12 18:30:05 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
因胸联盟 该用户已被删除
16#
发表于 2015-4-27 23:27:23 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
柔情似水 该用户已被删除
17#
发表于 2015-4-29 16:43:17 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
第二个灵魂 该用户已被删除
18#
发表于 2015-6-5 20:54:00 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
谁可相欹 该用户已被删除
19#
发表于 2015-6-19 08:54:32 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
再现理想 该用户已被删除
20#
发表于 2015-7-6 08:41:49 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 03:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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