2011-12-03 2 views
0

これは私のPHPページからMySQLへの挿入のための私の作業クエリです:phpの日付と挿入時のmysqlの日付を比較できますか?

$query = "INSERT INTO postings (title, description, timeStamp) VALUES ('$title', '$description', STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s'))"; 

$日はmysql.timeStamp(タイプで最新の日付よりも大きい場合、私は何を望んでいることは、今だけ挿入されますタイムスタンプの)。

これを行うことはできますか?私は次のように試しました:

$query = "INSERT INTO postings (title, description, timeStamp) VALUES ('$title', '$description', STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s')) where STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s') > timeStamp"; 

1)挿入時に私のPHPページの日付とmysqlの日付を比較できますか?
2)もしそうなら...このクエリを終了し、 "> timeStamp"をテーブル内の最新の日付だけを評価するにはどうすればいいですか?

+0

あなたがしようとしているものが、より簡単で効率的なものとなるように、UNIXのタイムスタンプを使用している場合。少なくともこの種のものについては。すべての作業変換文字列よりもint値を比較するほうがずっと簡単です。 – Rooster

答えて

1

最初にクエリを実行して、行を挿入する前にテーブルにタイムスタンプの高い投稿があるかどうかを確認する方が良いと思います。

結果が返されない場合は、通常の方法で投稿を挿入することができます。

+0

素晴らしいアイデア!私はこの道に向かいます。ありがとう! – Andi

+0

私は通常の挿入文を次のように囲みます。私は本当のことを知っている1つの結果を持っている..しかし、何も挿入されていません。私が間違っていることは何か考えていますか? – Andi

+0

'$ querycheck ="投稿からのSELECT 1都市名$ cityとSTR_TO_DATE( '$ date'、 '%a、%d%M%Y%H:%i:%s')> timeStamp LIMIT 1; if($ querycheck === true){私の元のinsert文をここに入れる} ' – Andi

0

1)いいえ、できません。あなたはまた、ストアドプロシージャを使用することができますhereいくつかのサンプル

をチェックし、あなたが@rabusmarソリューションの同時実行を避けるためにトランザクションを使用することができますhere

sintaxをチェックしますが、トランザクションよりも複雑であり、同じ結果を持っていることができます。