下記の実行すると、エラーが表示され
LIMIT 0,50を外すとエラーにはならず、結果が表示されます。
ただ、一度に全件が表示されるのでLIMITで表示させる件数を制御したいと思っていますが、
なぜかエラーになっています。どこが間違っているのでしょうか?
$query = "select *
from
tableA ta left join tableB tb on ta.id = tb.id
left join tableC tc cf on tb.id = tc.id
left join tableD td on tb.id = td.id
where tb.aaa != ''";
$xdays = (isset($days) and $days !== "")?$days:null;
$xmn =(isset($mn) and $mn !== "")?$mn:null;
$xfp =(isset($fp) and $fp !== "")?$fp:null;
$xre =(isset($re) and $re !== "")?$re:null;
if(is_null($xdays) and is_null($xmn) and is_null($xfp) and is_null($xre)){
$query .= " and 0";
}else{
if(!is_null($xdays))$query .=" and tb.day='" .$xdays ."'";
if(!is_null($xmn))$query .=" and tb.mn = '" .$xmn ."'";
if(!is_null($xfp))$query .=" and tb.fp='" .$xfp ."'";
if(!is_null($xre))$query .=" and tb.re='" .$xre ."'";
}
$query .=" order by tb.day DESC,tb.jikan limit 0,50;
エラー:
empty: 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 'and tb.fp='4'' at line 20
以前の質問
https://oshiete.goo.ne.jp/qa/9061230.html
を参考に、修正している状況で、LIMITのエラー?になって困っています。
No.3ベストアンサー
- 回答日時:
if(!is_null($xdays))$query .=" and tb.day='" .$xdays ."'\n";
if(!is_null($xmn))$query .=" and tb.mn = '" .$xmn ."'\n";
if(!is_null($xfp))$query .=" and tb.fp='" .$xfp ."'\n";
if(!is_null($xre))$query .=" and tb.re='" .$xre ."'\n";
$query .=" order by tb.day DESC,tb.jikan\n";
$query .=" limit 0,50";
など、条件を行にわけると、エラーの箇所をより細かく限定できるかもしれません
具体的なエラー行数が表示されるので
有難うございます。
条件を行に分けて、実行したところ、エラーのlineが常にLIMIT 0,50のラインに来ていることが確認できました。
サーバの関係で使えないとかあるのでしょうか??
No.2
- 回答日時:
>上記のように表示され、phpmyadmin上にコピペすると問題なく結果がでますが
#1でも書きましたタイプミス、転記ミスない?
cfってなに?db.fpってなに?
すいません。cf,db.fpはここに書き込み編集ミスしていました
実際には不明なものはないように思います。
LIMIT 0,50を外すだけで、正常に動くのも不思議でなりません。
No.1
- 回答日時:
>'and tb.fp='4''
のあたりでエラーが出ているのLimit句以前の問題では?
print $queryしてみればSQL文全体で文法エラーの箇所が検証できるでしょう
たとえば半角スペースが全角になっているとかその手の類かなぁ?
ちなみに
>$query .=" order by tb.day DESC,tb.jikan limit 0,50;
phpとして文法エラーです。このあたりの転記ミスをされると
本質的なエラーがどこにあるか回答のしようがありません
yamabejpさん
ご指摘有難うございます
printして補足に書き加えましたが、printしたものをphpmyadmimの上では実行できたのですが…
半角・全角スぺースはなさそうでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- 公的扶助・生活保護 保証人? 1 2022/05/17 22:42
- 戦争・テロ・デモ ウクライナ、メル友に五千円要求されてさ 1 2022/04/02 09:38
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- 英語 英文の添削お願いします。【長文です。】 マッチングアプリで相手を言い負かしている時のやつです。 色々 1 2023/07/01 02:12
- その他(SNS・コミュニケーションサービス) 自分のpcがハッキングされたようなメールが来たのですがどうすればいいですか? 4 2022/10/02 16:14
- 英語 下記はなんていってますか? こんにちは以降、訳していただけたら助かります。 Hello, We’re 1 2023/01/14 00:09
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
テーブル名が可変の場合のクエ...
-
うまくいきません教えてくださ...
-
MySQL NULLだけをカウントして...
-
SQLです下記の問合せを行うクエ...
-
Xサーバーのバックアップで全サ...
-
php テーブルを作れない
-
SQLです教えてくださいお願いし...
-
SQLです。下記の問合せを行うク...
-
データベースの複製の仕方(mysql)
-
LIMIT で条件を満たしているの...
-
アプリケーションのデータベー...
-
SQLです教えてくださいお願いし...
-
SQLです。こんな感じですか?あ...
-
[XAMPP Control Panel v3.2.4] ...
-
データベースの検索で、この場...
-
MAMPで80ポートが使用されている...
-
下記の問合せを行うクエリを、 ...
-
下記の問合せを行うクエリを、 ...
-
下記の問合せを行うクエリを、P...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Null値が入れられない
-
NULLを含む列の足し算
-
SQLでLIMIT句を入れるとエラー...
-
nullと同じく空白をCountしない...
-
MySQLの特定のカラムの内容を全...
-
テーブル作成時に、「`id` int(...
-
SQL文を入力したらエラー
-
phpとSQLで複数条件で検索する...
-
MySQLで関連したデータを横に並...
-
VIEWに対してWHERE句をつける
-
空白文字を含む文字列データの検索
-
後でemailに追加でPRIMARY KEY...
-
SQL任意に並び替えをしたい
-
sqlの中で、 例えば条件句で AN...
-
コマンドプロンプト 実行結果...
-
SELECT文の二段重ね
-
count()の結果を別の計算で使う...
-
JOIN使ってないのに、JOIN操作...
-
コマンドプロンプト 複数の実...
-
MySQL + PHP での自動採番
おすすめ情報
補足します。
$queryをprintすると、
-------
select *
from tableA ta left join tableB tb on ta.id = tb.id
left join tableC tc cf on tb.id = tc.id
left join tableD td on tb.id = td.id
where tb.aaa != '' and db.fp='4' ORDER BY tb.day DESC , tb.jikan LIMIT 0 , 50
-----
上記のように表示され、phpmyadmin上にコピペすると問題なく結果がでますが
サイト上で行うと、本文のエラーとなります。