2016-09-11 22 views
1

PHPを習得しました。私は非常に単純なSQLを実行しようとしていことは、文SQLSTATE [42000]:構文エラーまたはアクセス違反:SQL select文の1064

<?php 
    $sql = 'SELECT firstname, lastname,email 
      FROM MyGuests 
      ORDER BY firstname where id=12'; 
?> 

を選択するには、以下のエラー -

がデータベースTESTDBに接続できませんでした与える:SQLSTATE [42000]:構文エラーまたはアクセス違反:1064あなたはSQL構文に誤りがあります。

申し訳ありませんが、愚かな質問です。

+1

WHERE句(WHERE ID = 12)は、 –

+0

@TheOneandOnlyChemistryBlob、ORDER BYの前に行く答えとして、それを投稿する必要があります。 –

+0

@ s.k.paulあなたはすでに同じことを述べている3つの回答があります(そのうちの2つはそのコメントの同じ分以内に投稿されました。 – chris85

答えて

1

質問の順序が間違っています。order bywhereの後にする必要があります。

SELECT firstname, lastname,email 
      FROM MyGuests 
      where id=12 
ORDER BY firstname 

すべての機能の順序は、マニュアルのhttp://dev.mysql.com/doc/refman/5.7/en/select.htmlで確認できます。

2

スイッチORDER BYWHERE条項:ここ

SELECT firstname, 
     lastname, 
     email 
FROM MyGuests 
WHERE id = 12 
ORDER BY firstname 

は、MySQL文の解釈の順序を示しています便利なスタックオーバーフローの質問です:

MySQL query/clause execution order

1

あなたは構文間違って持って..

SELECT.. 
FROM.. 
WHERE.. 
GROUP BY.. 
ORDER BY .. 

ので:

SELECT firstname, lastname,email 
FROM MyGuests 
where id=12 
ORDER BY firstname 
関連する問題