長いエラーメッセージですが、ほとんどの原因はSQLの入力ミスです。
#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 ‘SELEC * FROM `table1` WHERE 1’ at line 1
逆に言えば単純にSQLの入力を1文字間違えただけでも、この長いエラーメッセージが表示されます。
どこを間違えたのか、あまりエラーメッセージは参考にならない場合があるので、エラーメッセージの解釈に時間をかける必要はありません。
そもそも、入力ミスと判断されるのはSQLのキーワードです。たとえば、SELECTをSELECTOのように入力したり、
SELECT * FROM table1 WHERE id=1
と入力すべきところ、table1とWHEREの間の半角空白を入れ忘れて次のように入力すると、エラーになります。
SELECT * FROM table1WHERE id=1
ここで、エラーメッセージを手がかりにしようと思っても「=1 LIMIT 0, 30」の近くにというヒントが気になってエラーの原因特定が難しくなる場合があります。
「error in your SQL syntax」から入力ミスだと判断して、細かいエラーメッセージを深追いせず、SQLキーワードの入力を間違えてないか、半角スペースが抜けていないか、もう一度確認してみてください。
主なSQLキーワードをまとめておきます。スペルが間違っていないか確認しましょう。
- SELECT … FROM … — データの取得
- INSERT INTO … VALUES — データの追加
- UPDATE … SET — データの変更
- DELETE FROM — データの削除
- WHERE — データの絞込み
- LIKE — データのあいまい検索
- LIMIT — データの取得位置
- JOIN — テーブルの結合
- GROUP BY — データのグループ化
- ORDER BY id DESC — データの並べ替え
- PRIMARY KEY — 主キー
- CREATE TABLE — テーブルの作成
特にPHPスクリプトなどで動的にSQLを組み立てている場合、重要な所に半角スペースが抜けていることに気づかないこともあります。どうみても文法的に間違ってなさそうなときは、SQLキーワードの周りに半角スペースが入っているか確認してください。