ホームページ > バックエンド開発 > PHPチュートリアル > 長い間私を悩ませてきた素朴な疑問

長い間私を悩ませてきた素朴な疑問

WBOY
リリース: 2016-06-13 13:45:35
オリジナル
799 人が閲覧しました

長い間私を混乱させてきた単純な質問
$nian = 1990;
$a = ($nian-1);
$b = ($nian+1);
$query = "SELECT * FROM `final` WHERE `writedate` <'$b' and 'writedate'>'$a'";
$result = mysql_query("$query");
$row = mysql_fetch_array($result );

print_r($row);
このように書くとクエリのたびに何も出力されなくなります。 = "SELECT * FROM `final` WHERE `writedate` <'($nian+1)' and 'writedate'>'($nian-1)'";
$result = mysql_query("$query " );
$row = mysql_fetch_array($result);
print_r(row);
writedate は date 型ですが、前のフィールドは tinyint 型でした。問題は次のとおりです。 $a = ($nian-1) などの格納される変数と、$nian-1 などの直接の加算および減算の違いは何ですか?


<🎜; >
--- ---解決策------------------------

`writedate` <'($nian+1)' '($ nian+1)' は文字列ですが、どのように操作できますか

------解決策----------------------

$query = "SELECT * FROM `final` WHERE `writedate` <'($nian+1)' および 'writedate'>'($nian-1)'";このように書かれた ($nian+1) はまったく解析されません

------解決策----------------------

SQL ステートメントは...1990+1 になりました。 ..1990 -1... 予想どおり 1991 1989 ではなく、よく考えてください ------解決策---------

補足: ` WHERE ` writedate` <'($nian+1)' と 'writedate'>'($nian-1)'";

これに変更すると、 ` WHERE `writedate` <($nian + 1) と 'writedate'>($nian-1)"; は期待どおりの結果を取得できます

余分な '' は括弧と一緒に文字列全体として扱われます。

------解決策-----

次のように SQL ステートメント内の操作を減らしてみます。 CanPHP コード
のような $query = "SELECT * FROM `final` WHERE `writedate` <'".($nian+1)."' and 'writedate'>'".($nian-1)."'";

------解決策------------------

ディスカッション
MYSQL を変換できないことが分かり、私は言葉を失いましたが、幸いなことに、作業は完了し、引き継がれる必要はなくなりました。やり方がわかりません。ありがとうございます。 引用: SQL ステートメントは、予想どおり 1991 1989 ではなく、... 1990+1...1990-1... になりました。



------解決策---------

話し合う
その理由は何ですか? $query = "SELECT * FROM `final` WHERE `writedate` <'($nian+1)' and 'writedate'>'($nian - 1)'";
このように書いた ($nian+1) はまったく解析されません



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート