创建一个以PHP md5(microtime())
为结果的表格时,我遇到语法错误。
特别是,错误会被**围绕它的部分抛出:
CREATE TABLE form_data_38 (
id INT SIGNED auto_increment NOT NULL,
rltd_pri_key INT SIGNED NULL,
0accc77c084cc74a51dee479f8d095e3 TEXT(65535) NOT NULL,
**092e60b78f7804e86ea9a6e83701a929 TEXT(65535) NOT NULL**,
6734131796201537410e4d43635bf1b3 TEXT(65535) NULL,
PRIMARY KEY (id)
) TYPE=InnoDB;
令我感到困惑的是,为什么它会被抛到那个位置而不是之前的其他2个哈希值。我在列名中加了'a',它创建表没问题。我已经搜索了MySQL的命名规则,到目前为止我还没有想出任何东西。它只是说所有字母数字字符加'_'和'$'都可以使用,在这种情况下应该没问题。
我错过了什么?
答案 0 :(得分:1)
将表格和字段名称放在反引号中:`09e4_fieldName`
,至少对于那些可能会产生此类问题的名称:
CREATE TABLE form_data_38
( id INT SIGNED auto_increment NOT NULL
, rltd_pri_key INT SIGNED NULL
, `0accc77c084cc74a51dee479f8d095e3` TEXT(65535) NOT NULL
, `092e60b78f7804e86ea9a6e83701a929` TEXT(65535) NOT NULL
, `6734131796201537410e4d43635bf1b3` TEXT(65535) NULL
, PRIMARY KEY (id)
)
ENGINE = InnoDB ; --- ENGINE, not TYPE