2
echo $date1u

2010年4月21日

その日付を取得してSQLクエリにハードコードすると、正常に機能します

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-21'

しかし、代わりに$ date1uを直接使用すると、まったく機能しません。

"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '".$date1u."' "

これが機能しなくなる原因となっている変数$date1uまたはSQL形式の問題は何ですか?

編集

提案に従い、試してみました

$result1 = "SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '".$date1u."' ";
echo $result1;

結果と、この状況での出力を確認するには

 SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-22'

$ date1uだけをエコーすると2010-04-21になりますが、SQLクエリで変数をエコーすると1日追加されます

4

5 に答える 5

2

変数の両側に空白、つまりスペースまたはタブがありますか?もしそうなら、これはおそらく問題を引き起こしているものです。

試すecho ">>" . $date1u . "<<";

「>>2010-04-21<<」を取得すると、先頭にスペースがあることがわかります。可変長を取得することも、問題を特定するのに役立つ場合があります。

于 2012-06-11T17:28:46.437 に答える
1

によって返される$date1u値が引用符で囲まれた値を返しているのではないかと思います。その場合は、SQLクエリに接続する前に引用符を削除する必要があります。

于 2012-06-11T17:20:59.593 に答える
0

推測している

これ:

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-21'

このようにする必要があります:

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = 2010-04-21

あなたはその日に取り出す必要があり''ます。これはSQLクエリエラー用です。

于 2012-06-11T17:26:07.943 に答える
0

私は自分のサーバーでこれを試しましたが、うまくいきました。

"SELECT * FROM phoneappdetail WHERE salebarn='OSI' AND saledate='$date1u'"

完璧なプログラミングではないかもしれませんが、うまくいきました。

于 2012-06-11T17:37:38.373 に答える
0

これを試して

"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '" . trim($date1u) . "'"
于 2012-06-11T17:44:28.080 に答える