Php mysql-创建更长的内容表

Php mysql-创建更长的内容表,php,mysql,Php,Mysql,我想为页面内容创建一个大的存储空间。以下是我尝试过的: CREATE TABLE `pages` ( `id` int(4) NOT NULL auto_increment, `name` varchar(65) NOT NULL default '', `content` varchar(65) NOT NULL default '', `author` MEDIUMBLOB() NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUT

我想为页面内容创建一个大的存储空间。以下是我尝试过的:

CREATE TABLE `pages` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`content` varchar(65) NOT NULL default '',
`author` MEDIUMBLOB() NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
-- 
-- Dumping data for table `pages`
--
INSERT INTO `members` VALUES (1, 'test', 'TEST_TEST_TEST');
我得到一个错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server           version for the right syntax to use near '() NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2' at line 5 
有什么建议吗?

试试这个

CREATE TABLE `pages` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`content` text NOT NULL default '',
`author` MEDIUMBLOB() NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
试试这个:

CREATE TABLE `pages` (
    `id` INT NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(65) NOT NULL,
    `content` LONGTEXT NOT NULL,
    `author` MEDIUMBLOB NOT NULL,
    PRIMARY KEY (`id`)
)
ENGINE=MyISAM;

我认为第一个问题是
blob()
语句。为什么不直接使用'varchar():

insert还需要四列,而您只需要提供三列。您应该养成在
插入中显式列出列的习惯:

INSERT INTO `members`(id, name, content)
    VALUES (1, 'test', 'TEST_TEST_TEST');
我发现了一些问题:

  • 如果不想指定列的格式详细信息,则必须省略括号。你不能让它们空着。例如
    INT(10)
    INT
    但不
    INT()

  • MEDIUMBLOB
    不接受参数:它是
    MEDIUMBLOB
    而不是
    MEDIUMBLOB()

  • MEDIUMBLOB
    列不能有默认值

  • 您已将列类型替换为
    内容
    作者

  • 您可能滥用了
    notnull
    约束,将其应用于所有列,然后默认为空字符串

  • 确保您知道
    '
    NULL
    之间的区别

  • TYPE
    关键字多年来一直被弃用,最终在MySQL/5.5上被删除。将其更换为
    发动机


在内容上而不是varchar(65)使用bigtext,并且自动递增不是这样做的。试着用HeidiSQL制作表格,这样更简单。我想存储大页面的内容,而不是小的输入。这正是我要说的,而不是varchar(65)使用LONGTEXT,因为varchar(65)将页面内容限制在65个字符以内,将bigtext限制在24亿个字符以内。试试这个
content
text NOT NULL default“我真的很惊讶,你有这么长的作者,以至于你需要一个mediumblob作为作者,但是这些内容可以容纳65个字符这是正确的答案!!MEDIUMBLOB、BLOB等不能有默认值,其类型应为ENGINE,而不是ENGINE+1工作正常,我将检查它是否与我的php代码一起工作。blob没有问题,并且它不在问题中。@xMoltenX。有趣的空括号会导致SQLFIDLE()出现问题。不要相信那些网站,它们太好了,不可能真的那么好:D
INSERT INTO `members`(id, name, content)
    VALUES (1, 'test', 'TEST_TEST_TEST');