PHP及MySQL保留字列表

1、PHP保留字
    以下是 PHP 中预定义标识符的列表。没有列在下面的标识符可以在脚本中作为自定义标识符使用。这些列表包括关键字和预定义变量、常量和类名。这些列表可能有遗漏,它是不完整的。
    这些词语在 PHP 中有着特殊的意义。它们中有些像是函数,有些像是常量……但是它们不是的,它们只是语言结构的一部分。不能使用它们的任何一个作为常量、方法名或是类名。但是可以将它们作为变量名使用,不过这样会导致混淆。

and                or                    xor
__FILE__           exception (PHP 5)     __LINE__
array()            as                    break
case               class                 const
continue           declare               default       
die()              do                    echo()
else               elseif                empty()
enddeclare         endfor                endforeach
endif              endswitch             endwhile
eval()             exit()                extends       
for                foreach               function
global             if                    include()
include_once()     isset()               list()
new                print()               require()
require_once()     return()              static       
switch             unset()               use
var                while                 __FUNCTION__
__CLASS__          __METHOD__            final (PHP 5)
php_user_filter (PHP 5)                  interface (PHP 5)
implements(PHP5)   extends               public (PHP 5)
private (PHP 5)    protected (PHP 5)     abstract (PHP 5)
clone (PHP 5)      try (PHP 5)           catch (PHP 5)       
throw (PHP 5)      cfunction (PHP 4 only)
old_function (PHP 4 only)                this (PHP 5 only)   


2、MySQL中保留字
    尝试使用一个识别符,例如使用嵌入式MySQL数据类型或函数名作为表名或列名,例如TIMESTAMP或GROUP,会造成一个常见问题。允许你这样操作,例如,ABS可以作为一个列名)。但是,默认情况下,在函数调用中,在函数名和后面的‘(’字符之间不允许有空格。该要求使函数调用与列名引用不同。该行为的不利结果是在某些上下文中省略一个空格会使识别符解释为函数名。例如,该语句合法:
    mysql> CREATE TABLE abs (val INT);
    但省略abs后面的空格会造成语法错误,因为省略后该语句好像要调用ABS()函数:
    mysql> CREATE TABLE abs(val INT);
    如果SQL服务器模式包括IGNORE_SPACE模式值,服务器允许函数调用时在函数名和后面的‘(’字符之间有空格。这样使函数名被视为保留字。结果是,与函数名相同的识别符必须引起来。
    限定名中句点后面的字必须为一个识别符,因此不需要将它引起来,即使它是一个保留字。
    在MySQL中,下表中的字显式被保留。其中大多数字进制被标准SQL用作列名和/或表名(例如,GROUP)。少数被保留了,因为MySQL需要它们,(目前)使用yacc解析程序。保留字被引起来后可以用作识别符。

ADD                     ALL                       ALTER
ANALYZE                 AND                       AS
ASC                     ASENSITIVE                BEFORE
BETWEEN                 BIGINT                    BINARY
BLOB                    BOTH                      BY
CALL                    CASCADE                   CASE
CHANGE                  CHAR                      CHARACTER
CHECK                   COLLATE                   COLUMN
CONDITION               CONNECTION                CONSTRAINT
CONTINUE                CONVERT                   CREATE
CROSS                   CURRENT_DATE              CURRENT_TIME
CURRENT_TIMESTAMP       CURRENT_USER              CURSOR
DATABASE                DATABASES                 DAY_HOUR
DAY_MICROSECOND         DAY_MINUTE                DAY_SECOND
DEC                     DECIMAL                   DECLARE
DEFAULT                 DELAYED                   DELETE
DESC                    DESCRIBE                  DETERMINISTIC
DISTINCT                DISTINCTROW               DIV
DOUBLE                  DROP                      DUAL
EACH                    ELSE                      ELSEIF
ENCLOSED                ESCAPED                   EXISTS
EXIT                    EXPLAIN                   FALSE
FETCH                   FLOAT                     FLOAT4
FLOAT8                  FOR                       FORCE
FOREIGN                 FROM                      FULLTEXT
GOTO                    GRANT                     GROUP
HAVING                  HIGH_PRIORITY             HOUR_MICROSECOND
HOUR_MINUTE             HOUR_SECOND               IF
IGNORE                  IN                        INDEX
INFILE                  INNER                     INOUT
INSENSITIVE             INSERT                    INT
INT1                    INT2                      INT3
INT4                    INT8                      INTEGER
INTERVAL                INTO                      IS
ITERATE                 JOIN                      KEY
KEYS                    KILL                      LABEL
LEADING                 LEAVE                     LEFT
LIKE                    LIMIT                     LINEAR
LINES                   LOAD                      LOCALTIME
LOCALTIMESTAMP          LOCK                      LONG
LONGBLOB                LONGTEXT                  LOOP
LOW_PRIORITY            MATCH                     MEDIUMBLOB
MEDIUMINT               MEDIUMTEXT                MIDDLEINT
MINUTE_MICROSECOND      MINUTE_SECOND             MOD
MODIFIES                NATURAL                   NOT
NO_WRITE_TO_BINLOG      NULL                      NUMERIC
ON                      OPTIMIZE                  OPTION
OPTIONALLY              OR                        ORDER
OUT                     OUTER                     OUTFILE
PRECISION               PRIMARY                   PROCEDURE
PURGE                   RAID0                     RANGE
READ                    READS                     REAL
REFERENCES              REGEXP                    RELEASE
RENAME                  REPEAT                    REPLACE
REQUIRE                 RESTRICT                  RETURN
REVOKE                  RIGHT                     RLIKE
SCHEMA                  SCHEMAS                   SECOND_MICROSECOND
SELECT                  SENSITIVE                 SEPARATOR
SET                     SHOW                      SMALLINT
SPATIAL                 SPECIFIC                  SQL
SQLEXCEPTION            SQLSTATE                  SQLWARNING
SQL_BIG_RESULT          SQL_CALC_FOUND_ROWS       SQL_SMALL_RESULT
SSL                     STARTING                  STRAIGHT_JOIN
TABLE                   TERMINATED                THEN
TINYBLOB                TINYINT                   TINYTEXT
TO                      TRAILING                  TRIGGER
TRUE                    UNDO                      UNION
UNIQUE                  UNLOCK                    UNSIGNED
UPDATE                  USAGE                     USE
USING                   UTC_DATE                  UTC_TIME
UTC_TIMESTAMP           VALUES                    VARBINARY
VARCHAR                 VARCHARACTER              VARYING
WHEN                    WHERE                     WHILE
WITH                    WRITE                     X509
XOR                     YEAR_MONTH                ZEROFILL

    MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。下面列出了一些例子:
    * ACTION
    * BIT
    * DATE
    * ENUM
    * NO
    * TEXT
    * TIME
    * TIMESTAMP

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值