关于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
VARCHASportage ”或许“ MEDIUMTEXT ”。 DATE 数据类型的格式是 YYYY-MM-DD ,举个例子:
1998-12-08 。你能够十分轻便的用 date 函数来博取这种格式的当下系统时间:
date(“Y-m-d”卡塔尔国 并且,在 DATA 数据类型之间能够作减法,取得相差的日子天数:
$age = ($current_date – $birthdate卡塔尔国; 群集 SET
是一个实用的数据类型,它和枚举 ENUM 有一些相同,只但是是 SET
能够保留多少个值而 ENUM 只可以保留八个值而已。并且, SET 类型最多只好够有 六13个约定的值,而 ENUM 类型却能够处理最多 65,5叁14个预订义的值。而若是急需有压倒 62个值的成团,该如何做呢?此时就供给定义四个聚众来一同化解这一个主题素材了。 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’ O路虎极光 CITY IS NULLState of Qatar “State of Qatar; 注意在搜索 NULL 时,必得用“ IS
”关键字,而 LIKE 时不会健康专门的职业的。
在最终要涉及的是,若是你在步入或许涂改贰个新的字段以前,数据库中早原来就有了一些记录了,那时候新加盟的字段在原本的纪录中的值,或许是
NULL ,也说不允许为空。这也究竟 MySQL 的一个 Bug 吧,所以在这里种状态下,使用
SELECT 查询要非常的小心。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图