0

特定の条件に一致する可能性のあるテーブルの最後のレコードを選択するためのクエリについて質問したいと思います。

次のコードは正常に実行でき、phpmyadminで正しいレコードを提供します

SELECT TYPE FROM log WHERE TechID=4 ORDER By LogTime DESC LIMIT 1

ただし、phpファイルでクエリを作成して実行すると、エラーが発生します。

$query2 = "SELECT Type FROM Log WHERE TechID=".$row1['TechID']."ORDER BY LogTime DESC LIMIT 1"

エラーメッセージは次のとおりです。

エラー!SQL構文にエラーがあります。1行目の「BYLogTimeDESCLIMIT 1」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

誰かが何が起こっているのか教えてもらえますか、myqueryはphpmyadminで使用しているものと同じである必要があります

以下は、ファイルをテストするために作成したサンプルレコードです。

LogID TechID ClientID SiteID Type     LogTime
1     2      5        1      Checkin  2012/07/04 09:00
2     4      5        1      Checkin  2012/07/04 09:00
3     2      5        1      Checkout 2012/07/04 10:00
4

2 に答える 2

3

注文明細の前にスペースを入れます。

" ORDER"
于 2012-07-16T02:19:53.543 に答える
0

問題になる可能性のあるもう1つのこと(ここではありません):PHPでは、文字列は一重引用符ではなく二重引用符でエスケープする必要があります(理由は聞かないでください)。したがって、

mysqli_query("select * from tabel where name = 'peter'");

偽になり、

mysqli_query("select * from tabel where name = \"peter\"");

また

mysqli_query('select * from tabel where name = "peter"');

成功します。

于 2016-02-27T02:06:16.803 に答える