PHP网站制作之关于PHP中操作MySQL数据库的一些要注重...
最近陆续的有人问我学习php的心得,现在整理为下面,希望可以对大家有些帮助。mysql|数据|数据库|成绩 1. 分号的破例关于 MySQL ,第一件你必需切记的是它的每行号令都是用分号 (;) 作为停止的,但……没有完整相对的事,在这儿也是一样,当一行 MySQL 被拔出在 PHP 代码中时,最好把前面的分号省略失落,例如:
mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ('$first_name', $last_name')");
这是由于 PHP 也是以分号作为一行的停止的,额定的分号有时会让 PHP 的语法剖析器弄不分明,所以仍是省略失落的好。在这类情形下,固然省略了分号,然而 PHP 在履行 MySQL 号令时会主动的帮你加上的。
别的还有一个不要加分号的情形。当你想把要字段的竖者分列显示上去,而不是像凡是的那样横着分列时,你可以用 G 来停止一行 SQL 语句,这时候就用不上分号了,例如:
SELECT * FROM PENPALS WHERE USER_ID = 1G
2. TEXT、DATE、和 SET 数据类型
MySQL 数据表的字段必需有界说一个数据类型。这有大约 25 种选择,大局部都是直接了然的,就不多费口舌了。但有几个有需要提一下。
TEXT 不是一种数据类型,固然能够有些书上是这么说的。它实践上应当是“ LONG VARCHAR ”或“ MEDIUMTEXT ”。
DATE 数据类型的格局是 YYYY-MM-DD ,好比: 1999-12-08 。你可以很轻易的用 date 函数来失掉这类格局确当前体系工夫: date("Y-m-d")
而且,在 DATA 数据类型之间可以作减法,失掉相差的工夫天数:
$age = ($current_date - $birthdate);
纠合 SET 是一个有效的数据类型,它和列举 ENUM 有点类似,只不外是 SET 可以保留多个值而 ENUM 只能保留一个值罢了。并且, SET 类型最多只可以有 64 个预定的值,而 ENUM 类型却可以处置最多 65,535 个预界说的值。而假如需求有大于 64 个值的纠合,该怎样办呢?这时候就需求界说多个纠合来一同处理这个成绩了。
3. 通配符
SQL 的通配符有两种:“ * ”和“ % ”。分离用在分歧的情形下。例如:假如你想看到数据库的一切内容,可以像如许来查询:
SELECT * FROM dbname WHERE USER_ID LIKE '%';
这儿,两个通配符都被用上了。他们暗示不异的意思 ?? 都是用来婚配任何的字符串,然而他们用在分歧的高低文中。“ * ”用来婚配字段名,而“ % ”用来婚配字段值。别的一个不轻易引发注重的中央是“ % ”通配符需求和 LIKE 关头字一同利用。
还有一个通配符,就是下划线“ _ ”,它代表的意思和下面分歧,是用来婚配任何单个的字符的。
4. NOT NULL 和空纪录
假如用户在没有填任何器材的情形下按了 submit 按钮,会如何呢?假如你的确需求一个值,那末可以用客户端剧本或办事器端剧本来停止数据验证,这一点在后面已说过了。然而,在数据库中倒是答应一些字段被空出来甚么也不填。对此类记载, MySQL 将要为之履行一些工作:拔出值 NULL ,这是缺省的操作。
假如你在字段界说中为之声了然 NOT NULL (在创立或修正这个字段的时分), MySQL 将把这个字段空出来甚么器材也不填。关于一个 ENUM 列举类型的字段,假如你为之声了然 NOT NULL , MySQL 将把列举集的第一个值拔出到字段中。也就是说, MySQL 把列举集的第一个值作为这个列举类型的缺省值。
一个值为 NULL 的记载和一个空记载是有一些区分的。 % 通配符可以婚配空记载,然而却不克不及婚配 NULL 记载。在某些时分,这类区分会形成一些意想不到的效果。就我的经历而言,任何字段都应当声明为 NOT NULL 。如许上面的 SELECT 查询语句就可以够正常运转了:
if (!$CITY) {$CITY = "%";}
$selectresult = mysql_query ("SELECT * FROM dbname
WHERE FIRST_NAME = ' 柳 '
AND LAST_NAME = ' 如风 '
AND CITY LIKE '$CITY'
");
在第一行中,假如用户没有指定一个 CITY 值,那末就会用通配符 % 来代入 CITY 变量,如许搜刮时就会把任何的 CITY 值都思索出来,乃至包含那些 CITY 字段为空的记载。
然而假如有一些记载,它的 CITY 字段值是 NULL ,这时候成绩就呈现了。下面的查询是不克不及够找到这些字段的。成绩的一个处理举措可所以如许:
if (!$CITY) { $CITY = "%"; }
$selectresult = mysql_query ("SELECT * FROM dbname
WHERE FIRST_NAME = ' 柳 '
AND LAST_NAME = ' 如风 '
AND (CITY LIKE '$CITY' OR CITY IS NULL)
");
刚开始觉得自己对这些多少有些基础,很简单,但是看了老师那么熟练的进行网页布局的时候,突然之间发现,其实,我的基础并没有自己想像的那么好,自己设计的页面其实并不好看,就连表格的边框为1像素都不会弄。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
页:
[1]