2012-02-27 8 views
0

私の質問の基本性についてお詫び申し上げますが、これは1時間以上私を夢中にしています。私はここでは、二重の代わりに単純な二重引用符を使用してSQL文を以下に変更したいと思います。私は試してみましたが、解決策を見つけることはできません。返信をいただきありがとうございます。乾杯。マークMySQLのシンプル/二重引用構文の問題

マイコード:

$result = mysql_query(" 

SELECT * 
FROM sorties 
WHERE srt_date_sortie BETWEEN '$date 00:00:00' AND '$date 23:59:59' 

"); 

答えて

1

私はあなたの質問は非常に明確ではありませんので、あなたが、やろうとしている正確に何か分からない、とあなたが試したもののように(どんな期待を与えていませんそれが実際にどのように働いていたかと比べて、それが期待される方法)

コンテンツがなければ、私はあなたが望むと思うものを刺すでしょう。

$result = mysql_query(' 

    SELECT * 
    FROM sorties 
    WHERE srt_date_sortie BETWEEN \'' . $date . ' 00:00:00\' AND \'' . $date . ' 23:59:59\' 

'); 
+0

こんにちはrockfest。助けてくれてありがとう。考えてみると、私はそのコードを一重引用符で始まるより大きくより複雑なSQL文に組み込む必要があります。だから、私は自分の声明を変える方法を見つける必要があるのです。 – Marc

+0

これは正確に必要なものです。 – rockerest

+0

本当にはい!私はちょうどそれをテストした。魅力のように働く。もう一度ありがとう... – Marc

1

あなたは簡単に私は、私は任意の書式設定の問題を削除しても問題整数にそれらを変更するTO_DAYS機能を使用する日付の比較が問題を見つけるために傾向がある

SELECT * 
FROM sorties 
WHERE DATE(srt_date_sortie) = $date 
+0

それは彼の引用符の問題を変更しません;-) – Thorsten

+0

@トルーマン:私はOPの中で他のものを挿入せずにクエリの最初と最後に二重引用符を使用することができると思います。何か不足していますか? :) – Marco

+0

こんにちは。細かい説明が不十分で申し訳ありません。私はBETWEENステートメントをフォーマットとして "Y-m-d"として$ dateとして使用する必要がありますが、dbでは日付フォーマットは "Y-m-d H:i"です。だから、DATE(srt_date_sortie)はその特定のケースで私のためではありません... – Marc

1
  1. でクエリを変更することができます日付と日付のフィールドを比較する

  2. MySQLは文字列修飾子として一重引用符を使用するため、二重引用符も使用します

  3. PHPはリテラル内の文字列変数を連結することができますが、私は読みやすくするために連結を表示することを好む

  4. $日付変数には、日付文字列

としてそれをマークするために、その周りに単一引用符を必要とします

最終的なクエリ:

$result = mysql_query("SELECT * 
FROM sorties 
WHERE TO_DAYS(srt_date_sortie) = TO_DAYS('".$date."')"); 
関連する問題