terminal42 / contao-changelanguage

ChangeLanguage is an extension for the Contao CMS which allows visitors to switch between different languages of your website.
43 stars 35 forks source link

SQL syntax error in 3.4.0 #217

Closed fritzmg closed 1 year ago

fritzmg commented 1 year ago

In 3.4.0 the following error occurs when editing the settings of the fallback root page:

Doctrine\DBAL\Exception\SyntaxErrorException:
An exception occurred while executing a query: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' 74, 59, 60, 66, 70, 71, 73, 61, 62, 63, 64, 65, 67, 68, 69, 76, 75, 77, 58' at line 1

  at vendor\doctrine\dbal\src\Driver\API\MySQL\ExceptionConverter.php:86
  at Doctrine\DBAL\Driver\API\MySQL\ExceptionConverter->convert(object(Exception), object(Query))
     (vendor\doctrine\dbal\src\Connection.php:1907)
  at Doctrine\DBAL\Connection->handleDriverException(object(Exception), object(Query))
     (vendor\doctrine\dbal\src\Connection.php:1850)
  at Doctrine\DBAL\Connection->convertExceptionDuringQuery(object(Exception), 'UPDATE tl_page SET languageMain = ? WHERE id = ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?', array(0, 78, 74, 59, 60, 66, 70, 71, 73, 61, 62, 63, 64, 65, 67, 68, 69, 76, 75, 77, 58), array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1))
     (vendor\doctrine\dbal\src\Connection.php:1172)
  at Doctrine\DBAL\Connection->executeStatement('UPDATE tl_page SET languageMain = ? WHERE id = ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?', array(0, 78, 74, 59, 60, 66, 70, 71, 73, 61, 62, 63, 64, 65, 67, 68, 69, 76, 75, 77, 58), array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1))
     (vendor\doctrine\dbal\src\Connection.php:740)
  at Doctrine\DBAL\Connection->update('tl_page', array('languageMain' => 0), array('id' => array(78, 74, 59, 60, 66, 70, 71, 73, 61, 62, 63, 64, 65, 67, 68, 69, 76, 75, 77, 58)), array(2, 101))
     (vendor\terminal42\contao-changelanguage\src\EventListener\DataContainer\PageOperationListener.php:137)

As far as I can see Doctrine\DBAL\Connection::update does not support x IN (…).

qzminski commented 1 year ago

I can confirm this issue. Checking the fix …

qzminski commented 1 year ago

Released as 3.4.1.