2011-07-03 138 views
1

這段代碼有什麼問題嗎?我運行MySQL 5我不斷收到此錯誤:MYSQL查詢錯誤

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 'desc BLOB, review BLOB, url BLOB)'

這裏是我的查詢:

mysql_query("CREATE TABLE videos(
       id INT NOT NULL AUTO_INCREMENT, 
       PRIMARY KEY(id), 
       title VARCHAR(50), 
       desc BLOB, 
       review BLOB, 
       url BLOB 
      ) 
") or die(mysql_error()); 

它看起來好了給我。起初我以爲是「BLOB」數據類型,但後來我嘗試了「TEXT」,但它仍然搞砸了,所以我不太確定。

回答

5

desc保留關鍵字,你需要逃避它:

mysql_query("CREATE TABLE videos(
       id INT NOT NULL AUTO_INCREMENT, 
       PRIMARY KEY(id), 
       title VARCHAR(50), 
       `desc` BLOB, 
       review BLOB, 
       url BLOB 
      ) 
")or die(mysql_error()); 

對於保留關鍵字的完整列表,請參閱8.3. Reserved Words

+0

:S哇很好。我從來沒有猜到。如果我查詢「desc」,我將不得不再次逃脫它? –

+0

@ howdy-mcgee是的,你會的。你應該把這個專欄命名爲別的。 –

0

嘗試:

mysql_query("CREATE TABLE videos(
       `id` INT NOT NULL AUTO_INCREMENT, 
       PRIMARY KEY(id), 
       `title` VARCHAR(50) NULL, 
       `desc` BLOB NULL, 
       `review` BLOB NULL, 
       `url` BLOB NULL 
      ) 
")or die(mysql_error()); 
1

desc MySQL保留關鍵字,你應該用反引號覆蓋它:

CREATE TABLE videos (
id INT NOT NULL AUTO_INCREMENT, 
`title` VARCHAR(50), 
`desc` BLOB, 
`review` BLOB, 
`url` BLOB, 
PRIMARY KEY (`id`) 
)