Где ошибся в запросе MySQL?

Рейтинг: 0Ответов: 1Опубликовано: 05.01.2015

Пытаюсь выполнить запрос, но все время выдает ошибку:

    INSERT INTO mod (user_id, data1, data2, mod ) VALUES ('1', '2015-01-05 13:23:26','2015-01-06 13:23:26', 'mod1')

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mod (user_id, data1, data2, mod ) VALUES ('1', '2015-01-05 13:23:26','2' at line 1

Сама таблица:

CREATE TABLE IF NOT EXISTS `mod` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `data1` datetime NOT NULL,
  `data2` datetime NOT NULL,
  `mod` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Код, который выполняется:

$today = date("Y-m-d H:i:s"); 
$d = new DateTime($date);
$d->modify("+1 day");
$date2= date_format($d, "Y-m-d H:i:s");
$query = "INSERT INTO mod (user_id, data1, data2, mod )VALUES ('$id_user', '$today','$date2', 'mod1')";
    echo $query.'<br>';
    $result = mysql_query($query) or die(mysql_error());;

Попытался просто выполнить запрос через myadmin:

INSERT INTO mod (user_id, data1, data2, modd ) VALUES ('', '2015-01-05 14:08:41','2015-01-06 14:08:41', 'mod1');

Ошибка та же... Может, формат даты неверный?

Новый код формирования запроса тоже дает ошибку: (((

$date_today = date("Y-m-d H:i:s");
$date_yesterday = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 1) ).date(" H:i:s");

$query = "INSERT INTO mod (user_id, data1, data2, modd ) VALUES ('$id_user', '$date_today','$date_yesterday', 'mod1')";
 echo $query.'<br>';

переименовал таблицу на mod2, все выполнилось нормально! Странно )))

Ответы

▲ 1

странно но проблема решилась банальным переименованием таблицы на mod2

Решилась потому-то слово mod вероятно зарезервировано и в коде реально не хватает кавычек именно таких: ``, ставьте их! Так не будет ошибок никогда, да и вам самим будет легче понимать свой код!