Как исправить 'SQLSTATE [22007]: Неверный формат даты и времени: 1292 Усеченное неверное значение DOUBLE:' X '' - PullRequest
0 голосов
/ 18 января 2019

В настоящее время я настраиваю страницу веб-сайта (страница «Записи»), которая подсчитывает общее количество людей, которые перешли на другую страницу веб-сайта (страница «Сайт»), поэтому я настраиваю файл 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 '

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

1 Ответ

0 голосов
/ 18 января 2019

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

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

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

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

Я изменил это, теперь оно работает. Извините!

...