我在 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 竟然不會發生這種事。。。。
其實這是因為某些內用字的影響。不過確實member並不是內定字。
有點奇怪。
我剛試了一下。並不會發生你說的情況。所以搞不懂你是發生什麼事。
除非你給的命令不是單純的「select * from member」
要不然我這邊試並不會發生你說的問題。
我是直接在 phpmyadmin 執行「select * from member」就出現錯誤了
你不是說在phpmyadmin??
不過在mysql上也不該出現這個錯誤才對。所以實在搞不明白你是發生了什麼事。我是有實測過。並沒有你說的情況。
但你說加上對應號。就不會發生錯誤。唯一能想到的就是你有宣告@參數或自定義函數了。
要不然想不到其它原因了。
他的錯誤訊息有這個member LIMIT 0, 25
,
但是他說他只有下select * from member
,
這點蠻有趣的,
不過就算LIMIT應該也不會報錯,
應該有其他原因.
打錯了,確實是在 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版測試的。難怪沒事。
感謝各路好手幫忙。