我对这个mySQL表做错了什么?

时间:2017-09-03 03:18:43

标签: php mysql sql database

我正在尝试为博客创建一个表格,并且我试图在其中存储2张图片,因此我使用LONGBLOB存储它(尽管我知道每个人都建议将其存储到文件系统然后添加链接在数据库中它,但事实是只有一个用户,这将是我所以没有理由过度复杂,因为这将不是大量的数据或大图片)。这是数据库:

CREATE TABLE posts{
id BIGINT(10) NOT NULL AUTO_INCREMENT,
title VARCHAR(10) NOT NULL,
description VARCHAR(30) NOT NULL,
content VARCHAR(MAX) NOT NULL,
picOne LONGBLOB(MAX) NOT NULL,
picTwo LONGBLOB(MAX) NOT NULL,
PRIMARY KEY(id)
);

我得到的错误是

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   要在'MAX)附近使用的语法,在第5行使用NOT NULL PRIMARY KEY(id))'

我认为我使用MAX这个词错了,或者我的整个数据类型可能有问题,或者可能有更好的方法。 我很感激帮助。

4 个答案:

答案 0 :(得分:0)

看看这个。创建新表时,这些应该相同()。

  

'创建表帖子{'

     

);

   CREATE TABLE posts(
  id BIGINT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(10) NOT NULL,
  description VARCHAR(30) NOT NULL,
  content VARCHAR(MAX) NOT NULL,
  picOne LONGBLOB(MAX) NOT NULL,
  picTwo LONGBLOB(MAX) NOT NULL
  );

答案 1 :(得分:0)

您使用的是不合适的大括号{。使用以下查询 -

CREATE TABLE posts(
id BIGINT(10) NOT NULL AUTO_INCREMENT,
title VARCHAR(10) NOT NULL,
description VARCHAR(30) NOT NULL,
content VARCHAR(MAX) NOT NULL,
picOne LONGBLOB(MAX) NOT NULL,
picTwo LONGBLOB(MAX) NOT NULL,
PRIMARY KEY(id)
);

也许只是一个错字。

答案 2 :(得分:0)

我将VARCHAR(MAX)替换为TEXT,将LONGBLOB(MAX)替换为LONGBLOB。你可以试试这个:

CREATE TABLE posts(
  id BIGINT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(10) NOT NULL,
  description VARCHAR(30) NOT NULL,
  content TEXT NOT NULL,
  picOne LONGBLOB NOT NULL,
  picTwo LONGBLOB NOT NULL
  );

答案 3 :(得分:0)

我最终做的是将VARCHAR值更改为非常高的值,如VARCHAR(10000),然后让LONGBLOB自行站立,并且完美运行。这是代码的样子:

CREATE TABLE pages(
id BIGINT(10) NOT NULL AUTO_INCREMENT,
title VARCHAR(10) NOT NULL,
description VARCHAR(30) NOT NULL,
content VARCHAR(10000) NOT NULL,
picOne LONGBLOB NOT NULL,
picTwo LONGBLOB NOT NULL,
PRIMARY KEY(id)
);