iT邦幫忙

0

phpmyadmin 在執行SQL時必須要加入「`」 否則會報錯誤?"member" table

  • 分享至 

  • xImage

我在 phpmyadmin 下

select * from member

卻出現以下錯誤

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 'member LIMIT 0, 25' at line 1

除非我要加入 「`」才會正常

select * from `member`

我的 mysql版本:Server version: 8.0.18 - Homebrew
nginx/1.17.3
Database client version: libmysql - mysqlnd 5.0.12-dev - 20150407
PHP version: 7.3.11
真奇怪,第一次遇到這問題
這是某種防呆機制嗎⋯⋯

而且其他 table 竟然不會發生這種事。。。。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2019-11-23 00:51:00
最佳解答

其實這是因為某些內用字的影響。不過確實member並不是內定字。
有點奇怪。

我剛試了一下。並不會發生你說的情況。所以搞不懂你是發生什麼事。
除非你給的命令不是單純的「select * from member」

要不然我這邊試並不會發生你說的問題。

看更多先前的回應...收起先前的回應...
火爆浪子 iT邦研究生 1 級 ‧ 2019-11-23 00:52:28 檢舉

我是直接在 phpmyadmin 執行「select * from member」就出現錯誤了

你不是說在phpmyadmin??

不過在mysql上也不該出現這個錯誤才對。所以實在搞不明白你是發生了什麼事。我是有實測過。並沒有你說的情況。

但你說加上對應號。就不會發生錯誤。唯一能想到的就是你有宣告@參數或自定義函數了。
要不然想不到其它原因了。

小魚 iT邦大師 1 級 ‧ 2019-11-23 09:20:15 檢舉

他的錯誤訊息有這個member LIMIT 0, 25,
但是他說他只有下select * from member,
這點蠻有趣的,
不過就算LIMIT應該也不會報錯,
應該有其他原因.

火爆浪子 iT邦研究生 1 級 ‧ 2019-11-23 09:39:31 檢舉

打錯了,確實是在 phpmyadmin 執行
我在 php 寫了相同的語句,也是報這個錯誤,一定得加「`」
但其他的 table 卻不用⋯⋯
https://imgur.com/k3vHSFm

因為你的環境是8.0.18
參照官方的關鍵字和保留字說明:

MEMBER; added in 8.0.17 (reserved); became nonreserved in 8.0.19

https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-8-0-detailed-M

果然。8版新增加MEMBER用法。它的確是保留字之一了。

我不是在8版測試的。難怪沒事。

火爆浪子 iT邦研究生 1 級 ‧ 2019-11-23 12:35:24 檢舉

感謝各路好手幫忙。

我要發表回答

立即登入回答