首页 数据库 mysql教程 PHP中操作MySQL的需注意的问题_MySQL

PHP中操作MySQL的需注意的问题_MySQL

Jun 01, 2016 pm 01:52 PM
最好

  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)

");

  注意在搜索 NULL 时,必须用“ IS ”关键字,而 LIKE 时不会正常工作的。

  在最后要提到的是,如果你在加入或者修改一个新的字段之前,数据库中已经有了一些记录了,这时新加入的字段在原来的纪录中的值,可能是 NULL ,也可能为空。这也算是 MySQL 的一个 Bug 吧,所以在这种情况下,使用 SELECT 查询要特别的小心。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

请推荐一款性价比较高的1155针CPU 请推荐一款性价比较高的1155针CPU Jan 14, 2024 pm 01:30 PM

求推荐1155针的cpu哪个最好当前性能最高的1155针CPU是IntelCorei7-3770K。它拥有4个核心和8个线程,基础频率为3.5GHz,并支持TurboBoost2.0技术,最高可达到3.9GHz。此外,它还搭载了8MB的三级缓存,是一款非常出色的处理器LGA1155针最强的CPUIntel酷睿i73770K。LGA1155接口为二三代酷睿处理器所使用的接口类型,性能最好的为Intel酷睿i73770K,这款处理器参数如下:1.适用类型:台式机;2.CPU系列:酷睿i7;3.CPU

什么是NEAR Protocol币?NEAR Protocol币有什么特点? 什么是NEAR Protocol币?NEAR Protocol币有什么特点? Mar 04, 2024 pm 11:20 PM

NEARProtocol:可扩展、用户友好的区块链平台NEARProtocol是一个采用分片技术的区块链平台,旨在应对区块链技术在可扩展性、用户友好性和安全性方面面临的挑战。它为开发者提供了一个高效和用户友好的平台,使他们能够轻松构建和部署去中心化应用程序(dApps)。NEARProtocol的设计旨在降低区块链开发的门槛,同时提供高度的效率和安全性。通过采用分片技术,NEARProtocol可以更好地处理大规模交易,并且为用户提供更快速的交易确认时间。总的来说,NEARProtocol旨在为

什么是最好的Python资源? 什么是最好的Python资源? Sep 16, 2023 pm 02:29 PM

适用于任何编程语言的资源包括视频课程、笔记以及电子书。在这里,我将列出Python的最佳资源。Python官方文档很多网站都提供Python资源,但还是官方文档效果最好。让我们看看他们提供的资源。Python初学者指南-https://wiki.python.org/moin/BeginnersGuidePython开发人员指南-https://devguide.python.org/免费的Python图书−https://wiki.python.org/moin/PythonBooksPyth

安钛克650电源主板线接口的引脚数量是多少?(安钛克650电源接线图) 安钛克650电源主板线接口的引脚数量是多少?(安钛克650电源接线图) Jan 03, 2024 am 10:46 AM

安钛克650w主板线是几pin的安钛克650W电源主板的电源线通常是24pin的,这是主板上最大的电源接口。它的作用是连接主板和电源,为主板和其他系统组件提供电源。此外,安钛克650W电源还可能包含其他类型的电源接口,如CPU8pin、PCIe6+2pin等,用于连接CPU和独立显卡等其他组件。主板走线教程主板走线是指在设计主板时,将各个电子元件之间的电路连接起来的过程。在这个过程中,需要考虑电路的稳定性、信号传输的速度和准确性等因素。根据电路图进行走线时,需注意布局和选择合适的线宽和距离,避免

显卡接口哪个效果最好 显卡接口哪个效果最好 Feb 22, 2024 am 10:51 AM

随着计算机技术的飞速发展,显卡作为计算机的重要组成部分之一,在游戏、图形设计等领域扮演着举足轻重的角色。而显卡接口则是连接显卡和主板的桥梁,影响着显卡的性能和效果。那么,究竟哪种显卡接口效果最好呢?目前市面上主要有PCI、AGP、PCIe这三种常见的显卡接口。其中,PCI接口是早期的标准接口,相对来说已经比较过时了。对于一些老旧的计算机或者使用简单办公需求的

最佳的风冷散热器是哪一款? 最佳的风冷散热器是哪一款? Jan 25, 2024 am 11:06 AM

选择电脑现在大部分的用户都会看中散热问题,因此现在的风冷散热器非常的畅销,因为价格实惠性价比也高,但是对于哪个最好大部分用户就不是很明白了,根据现在来看,最好的是瓦尔基里。风冷散热器哪个最好:答:根据现在的天梯图来看,最好的是瓦尔基里的“vk星环GL360”。这款水冷的性能很爆炸,而且价格非常的不错,对于入门的用户来说,肯定不会吃亏。vk星环GL360相关介绍:1、这款水冷的颜值很不错,安装也比较简单,对于新手来说操作起来也是很方便的。2、风扇整体十分的简约,logo还有一个可以转的圆圈,无聊的

电脑配置怎么选择最好 电脑配置怎么选择最好 Feb 21, 2024 am 11:18 AM

电脑配置怎么选择最好随着科技的不断进步,电脑已经成为了我们生活中必不可少的一部分,它不仅仅满足了我们的工作需求,还能为我们带来娱乐和休闲。而在选择电脑时,优秀的配置是十分重要的。本文将为大家介绍选购电脑配置的一些重要因素和技巧。首先,我们需要考虑自己的需求。不同的人用电脑的目的不同,有些人主要用于日常办公、上网浏览,而另一些人可能需要进行高性能的游戏或者专业

哪个网站下载win10最好 哪个网站下载win10最好 Jun 29, 2023 pm 07:33 PM

哪个网站下载win10最好?现在很多朋友喜欢自己在网上下载系统安装或重装,这就需要一个优秀的下载平台,那么win10系统下载哪个网站好呢,很多小伙伴不知道怎么详细操作,小编下面整理了win10系统下载网站好的介绍,如果你感兴趣的话,跟着小编一起往下看看吧!win10系统下载网站好的介绍答:系统520最好。这里的系统都是安全可靠的,而且安装方法也很简单,适合所有用户使用。1、这里的系统有多个好处。2、首先,保证安全可靠,所有系统都是可以正常安装不报错的。3、其次,安装操作特别简单,都是一键安装系统

See all articles