2015-02-09 2 views
1

Может ли кто-нибудь сказать мне, что случилось со мной в заявлении sql? Я хочу, чтобы он удалял все строки таблицы, что временной интервал более 1 минуты. Мой SQL-оператор не показывает никаких ошибок, но он не удалит ни одну из строк.Что случилось с моей операцией удаления mysql?

Кстати, я использую фреймворк codeigniter.

$new_date = date('Y-m-d H:i:s', now()); 
$query = $this->db->query("DELETE FROM table WHERE 'date/time' < ('$new_date' - INTERVAL 1 minute)"); 

ответ

4

Вы используете одиночные кавычки вокруг идентификатора столбца вместо тиков

$query = $this->db->query("DELETE FROM table WHERE `date/time` < ('$new_date' - INTERVAL 1 minute)"); 

Кроме того, $new_date = date('Y-m-d H:i:s', now()); должен быть просто $new_date = date('Y-m-d H:i:s');, как PHP делает не есть функция под названием now(). Или, еще лучше, просто использовать MySQL, построенный в функциях даты:

$query = $this->db->query("DELETE FROM table WHERE `date/time` < (NOW() - INTERVAL 1 minute)"); 

FYI, это не является общепринятой практикой использовать / в идентификаторах столбцов.

+0

Посмотрите на символы, относящиеся к 'date/time'. Они '' '', а не '' '. –

+0

Я вижу ... Спасибо .. Так что я должен использовать _ вместо /? – John

+0

Это было бы более «стандартным» –