Функция для получения сообщений, вставленных в БД 5 минут назад - PullRequest
0 голосов
/ 27 февраля 2019

Хорошо, поэтому, когда я отправляю сообщение, оно вставляет сообщение в базу данных.Через несколько минут запускается webhook и вставляет то же сообщение в db

. Я хочу вставить только одно сообщение, поэтому пишу код, подобный этому

$response = $this->messages_model->search_messages_five_mins_ago($recivernum,$msg);

if(!$response) {
    $newId = $this->Customer_m->insert_emaildata($add_email);
};

, но у него есть проблема с функцией создания.пока у меня есть это

public function search_messages_five_mins_ago($number,$msg)
{
$this->db->select('*');
$this->db->from('messages');
$this->db->where('receiver_num',$number);   
$this->db->where('content',$msg);
// and created_at betteen now() -10 mins and now 
$query = $this->db->get();
return $query->result_array();
}

Я не хочу вставлять сообщение снова, если оно было вставлено в течение последних 10 минут

любые идеи, пожалуйста, и спасибо

1 Ответ

0 голосов
/ 27 февраля 2019

Простой PHP для спасения, все, что вам нужно, это date и strtotime, чтобы определить, что такое "10 минут назад".

Кроме того, я бы предложил лучший способ определить, было ли что-тонайдено по запросу:

public function search_messages_five_mins_ago($number,$msg)
{
$this->db->select('*');
$this->db->from('messages');
$this->db->where('receiver_num',$number);   
$this->db->where('content',$msg);
$this->db->where('created_at >=', date('Y-m-d H:i:s',strtotime('Y-m-d H:i:s'."-10 minute")));

$query = $this->db->get();

if ($query->num_rows() == 0)
{
    // nothing found. You can do whatever you'd normally do
    return false;
}

else
{
    return $query->result_array();
}

Это найдет подходящие сообщения, созданные после "сейчас минус 10 минут".Верните false, если ничего не найдено, или верните сообщение (я), если найдено.

В вашем контроллере я бы использовал

if($response == false) {
    $newId = $this->Customer_m->insert_emaildata($add_email);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...