Как исправить «SQLSTATE [22007]: неверный формат даты и времени: 1292 Усеченное неверное значение DOUBLE:« X »

В настоящее время я настраиваю страницу веб-сайта (страница «записей»), которая подсчитывает общее количество людей, которые перешли на другую страницу веб-сайта (страница «сайт»), поэтому я установил файл cookie на странице сайта, который увеличивает указанные данные в база данных.

Я видел, как другие пользователи сталкивались с этой проблемой, потому что они включали оператор «И» в свой оператор «SET». Однако у меня нет оператора "И"

В моем репозитории у меня есть этот код:

public function addConnections($name): int
{
    $qb = $this->createQueryBuilder('connectionCounter')
        ->update('App\Entity\site', 'connectionCounter')
        ->set('connectionCounter.nbConnections', 'connectionCounter.nbConnections + 1')
        ->where('connectionCounter.name = (:name)')
        ->setParameter('name', $name)
        ->getQuery();

    return $qb->execute();
}

и в моем контроллере у меня есть этот код:

if ($repository)
{
    $query = $this->getDoctrine()
                  ->getRepository(Activity::class)
                  ->findActivities($repository[0]->getIdSite());

    $cookieCreator = 0;
    if (!isset($_COOKIE['Connection'])) {
        setcookie("Connection","1",time()+60*60*24*100);

        $connections = $this->getDoctrine()
                            ->getRepository(Site::class)
                            ->addConnections($repository[0]->getIdSite());
}

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

На самом деле происходит следующее:

An exception occurred while executing 'UPDATE site SET nb_connections = nb_connections + 1 WHERE name = (?)' with params [2]:

SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: 'X '

Даже объяснение того, почему это могло произойти, было бы здорово!

Какая у вас схема стола? Должно быть, nb_connections - это дата и время, поэтому вы не можете просто добавить к нему 1.

aynber 18.01.2019 16:56

Не волнуйтесь, я только что нашел решение. В моем контроллере есть getIdSite, хотя должен быть getName. В любом случае спасибо!

Pierre-Alain Tietz 18.01.2019 17:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
1 286
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Небольшой недосмотр с моей стороны, в моем контроллере у меня есть:

->addConnections($repository[0]->getIdSite());

Когда должно быть:

->addConnections($repository[0]->getName());

Я поменял, теперь работает. Прости!

Другие вопросы по теме