次のクエリは実行されません
mysql_query("SELECT * FROM order WHERE orderID = 102;");
次のエラーメッセージが表示されます。
SQL構文にエラーがあります。2行目の「orderWHEREorderID= 102」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
このテーブルを正常にクエリするSQLを作成するにはどうすればよいですか?
注文は予約語です。予約語をテーブル名またはフィールド名として使用しないでください。または、mysqlの場合は`などのエスケープ文字でラップします。個人的には、それらは一般的に長期的に価値があるよりも多くの頭痛を引き起こすので、私はそれらを使用することを避けています。
例:
mysql_query("SELECT * FROM `order` WHERE orderID = 102;");
詳細情報-予約語の詳細については、https://dev.mysql.com/doc/refman/5.5/en/keywords.htmlを参照してください。
人々がクエリが機能すると思い込んでいて、データベースに問題が発生した理由を説明するように頼むことすらしないことに夢中になります。これを試して:
$result = mysql_query("SELECT * FROM order WHERE orderID = 102;") or die(mysql_error());
同様に、上に示したものよりも多くのコードがない限り、クエリ呼び出しの戻り値をキャプチャする必要があります。これは、その戻り値が結果ハンドルであり、そこから結果をフェッチするためです。そのステートメントハンドルがないと、基本的にDBサーバー(および自分の)の時間を無駄にしていることになります。
試す
mysql_query("SELECT * FROM order WHERE orderID = 102;") or die("MySQL ERROR: ".mysql_error());