Могу ли я сравнить дату php с датой mysql на вставке? - PullRequest
0 голосов
/ 04 декабря 2011

Это мой рабочий запрос для вставки в mysql со своей страницы php:

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

Теперь я надеюсь вставить только в том случае, если $ date больше, чем самая последняя дата в 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" вычислял только самую последнюю дату в таблице (предполагая, что остальная часть моего предложения where работает)?

Ответы [ 2 ]

1 голос
/ 04 декабря 2011

Я думаю, что лучше, если вы сначала запустите запрос, чтобы проверить, есть ли в таблице сообщения с более высокой отметкой времени, прежде чем вставлять строку. Вы можете сделать это с помощью этого запроса:

$query = "SELECT 1 FROM postings 
    WHERE STR_TO_DATE('$date', '%a, %d %M %Y %H:%i:%s') < timeStamp
    LIMIT 1";

Тогда, если результаты не возвращаются, вы можете вставить свое сообщение как обычно.

0 голосов
/ 04 декабря 2011

1) Нет, ты не можешь. Вы можете проверить синтаксис здесь

Вы можете использовать транзакцию, чтобы избежать параллелизма решения @rabusmar, отметьте здесь некоторые примеры

Вы также можете использовать хранимую процедуру, но она более сложна, чем транзакция, и имеет такой же результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...