Contao-Camp 2024
Ergebnis 1 bis 14 von 14

Thema: huh_ldap: sql syntax error

  1. #1
    Contao-Nutzer
    Registriert seit
    12.10.2022.
    Beiträge
    6

    Standard huh_ldap: sql syntax error

    Hallo allerseits, beim importieren via

    Code:
    vendor/bin/contao-console cache:clear && vendor/bin/contao-console huh_ldap:sync_persons -vv
    kommt dieser SQL-Fehler:
    ---------------------
    Code:
     [OK] Inserted new tl_user instance for LDAP person " (uid: bmxxsavi)".
    
    
    20:13:33 CRITICAL  [console] Error thrown while running command "huh_ldap:sync_persons -vv". Message: "An exception occurred while executing 'INSERT INTO tl_user (ldapUidNumber,email,username,name,groups,admin,dateAdded,tstamp,password,language,backendTheme,uploader) VALUES ('10005','xxx.xxx@xxx.net','bmxxsavi','','a:0:{}','',1665598413,1665598413,'$argon2id$v=19$m=65536,t=4,p=1$zaY5/GanJ+/6fehjGxxxxxxxxxCYwIOW1qE2hNWXvc6scC44dKZFsXk','de','flexible','DropZone')':
    
    SQLSTATE[42000]: Syntax error or access violation: 1064 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 'groups,admin,dateAdded,tstamp,password,language,backendTheme,uploader) VALUES ('' at line 1" ["exception" => Doctrine\DBAL\Exception\SyntaxErrorException^ { …},"command" => "huh_ldap:sync_persons -vv","message" => """  An exception occurred while executing 'INSERT INTO tl_user (ldapUidNumber,email,username,name,groups,admin,dateAdded,tstamp,password,language,backendTheme,uploader) VALUES ('10005','xxx.xxx@xxx.net','bmxxsavi','','a:0:{}','',1665598413,1665598413,'$argon2id$v=19$m=65536,t=4,p=1$zaYxxxxxxJUStCYwIOW1qE2hNWXvc6scC44dKZFsXk','de','flexible','DropZone')':\n  \n  SQLSTATE[42000]: Syntax error or access violation: 1064 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 'groups,admin,dateAdded,tstamp,password,language,backendTheme,uploader) VALUES ('' at line 1  """]
    
    In AbstractMySQLDriver.php line 98:
    
      [Doctrine\DBAL\Exception\SyntaxErrorException]
      An exception occurred while executing 'INSERT INTO tl_user (ldapUidNumber,email,username,name,groups,admin,dateAdded,tstamp,password,language,backendTheme,uploader) VALUES ('10005','x.xx
      osavi@xx.net','bmxxsavi','','a:0:{}','',1665598413,1665598413,'$argon2id$v=19$m=65536,t=4,p=1$zaY5/xxxxxxxymryRFAJUStCYwIOW1qE2hNWXvc6scC44dKZFsXk','de','flexible','DropZo
      ne')':
    
      SQLSTATE[42000]: Syntax error or access violation: 1064 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 'g
      roups,admin,dateAdded,tstamp,password,language,backendTheme,uploader) VALUES ('' at line 1
    
    
    Exception trace:
      at /var/www/xxx/website/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:98
     Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException() at /var/www/xxx/website/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:182
     Doctrine\DBAL\DBALException::wrapException() at /var/www/xxx/website/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:159
     Doctrine\DBAL\DBALException::driverExceptionDuringQuery() at /var/www/xxx/website/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:2226
     Doctrine\DBAL\Connection->handleExceptionDuringQuery() at /var/www/xxx/website/contao/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:1313
     Doctrine\DBAL\Connection->executeQuery() at /var/www/xxx/website/contao/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Database/Statement.php:274
     Contao\Database\Statement->query() at /var/www/xxx/website/contao/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Database/Statement.php:248
     Contao\Database\Statement->execute() at /var/www/xxx/website/contao/vendor/heimrichhannot/contao-utils-bundle/src/Database/DatabaseUtil.php:908
     HeimrichHannot\UtilsBundle\Database\DatabaseUtil->insert() at /var/www/xxx/website/contao/vendor/heimrichhannot/contao-ldap-bundle/src/Util/LdapUtil.php:494
     HeimrichHannot\LdapBundle\Util\LdapUtil->syncPersons() at /var/www/xxx/website/contao/vendor/heimrichhannot/contao-ldap-bundle/src/Command/SyncPersonsCommand.php:112
     HeimrichHannot\LdapBundle\Command\SyncPersonsCommand->execute() at /var/www/xxx/website/contao/vendor/symfony/console/Command/Command.php:255
     Symfony\Component\Console\Command\Command->run() at /var/www/xxx/website/contao/vendor/symfony/console/Application.php:1027
     Symfony\Component\Console\Application->doRunCommand() at /var/www/xxx/website/contao/vendor/symfony/framework-bundle/Console/Application.php:97
     Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /var/www/xxx/website/contao/vendor/symfony/console/Application.php:273
     Symfony\Component\Console\Application->doRun() at /var/www/xxx/website/contao/vendor/symfony/framework-bundle/Console/Application.php:83
     Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /var/www/xxx/website/contao/vendor/symfony/console/Application.php:149
     Symfony\Component\Console\Application->run() at /var/www/xxx/website/contao/vendor/contao/manager-bundle/bin/contao-console:38
     include() at /var/www/xxx/website/contao/vendor/bin/contao-console:115
    ---------------------

    Das SQL-Statement ist an sich syntaktisch ok, wo kann da der Fehler liegen?

    Beste Grüße & vielen Dank!
    Heiner

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Lösche die server_version Angabe aus der parameters.yml und baue den Symfony Application Cache danach neu auf.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.076
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich denke 'groups' ist ein reserviertes Wort in neuen MySQL Versionen.

  4. #4
    Contao-Nutzer
    Registriert seit
    12.10.2022.
    Beiträge
    6

    Standard

    Danke für die schnelle Hilfe!

    Zitat Zitat von Spooky Beitrag anzeigen
    Lösche die server_version Angabe aus der parameters.yml und baue den Symfony Application Cache danach neu auf.
    Code:
    cat ./config/parameters.yml
    
    # This file has been auto-generated during installation
    parameters:
        database_host: localhost
        database_port: 3306
        database_user: con_xxxx
        database_password: iNxxxxxxxxxxxxxx43Afp1
        database_name: contao_xxx_db
        secret: 8f10axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1cb6a
    ... leider keine server_version - oder steht das wo anders?

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Hm, prüfe mal deine config.yaml, wenn du eine hast.
    » sponsor me via GitHub or PayPal or Revolut

  6. #6
    Contao-Nutzer
    Registriert seit
    12.10.2022.
    Beiträge
    6

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Ich denke 'groups' ist ein reserviertes Wort in neuen MySQL Versionen.

    Tatsache .. ich habe mal 'groups' etwas gehackt und 'groupss' daraus gemacht und siehe da:

    Code:
     An exception occurred while executing 'INSERT INTO tl_user (ldapUidNumber,email,username,name,groupss,admin,dateAdded,tstamp,password,language,backendTheme,uploader) VALUES ('10005','xxx.x@xxx.net','bmxxxxsavi','','a:0:{}','',1665607618,1665607618,'$argon2id$v=19$m=65536,t=4,p=1$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcfTig2aBeBbXf0','de','flexible','DropZone')':\n  \n  SQLSTATE[42S22]: Column not found: 1054 Unknown column 'groupss' in 'field list'  """]
    
    In AbstractMySQLDriver.php line 79:
    
      [Doctrine\DBAL\Exception\InvalidFieldNameException]
    Nice catch! Respekt! Und jetzt? Kann ich eine SQL-Version irgendwo erzwingen?

  7. #7
    Contao-Nutzer
    Registriert seit
    12.10.2022.
    Beiträge
    6

    Standard

    Code:
    $personData['groups']
    ->

    Code:
    $personData['`groups`']
    funktioniert.

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Vermutlich ein Bug im berühmt berüchtigten heimrichhannot/contao-utils-bundle ...
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Contao-Nutzer Avatar von koertho
    Registriert seit
    13.10.2022.
    Ort
    Mei?en
    Beiträge
    4

    Standard

    Warum sollte ein in bestimmten MySQL-Versionen reservierter Feldname ein Bug im Utils-Bundle sein?
    Zumal ja schon eine Lösung gepostet wurde. Habe daraus ein PR gemacht, kann gerne getestet werden. Habe leider weder ein Test-LDAP noch tieferes Verständnis des Bundle parat (habe es nicht entwickelt und der ursprüngliche Entwickler ist nicht mehr in der Firma).
    https://github.com/heimrichhannot/co...-bundle/pull/3

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Zitat Zitat von koertho Beitrag anzeigen
    Warum sollte ein in bestimmten MySQL-Versionen reservierter Feldname ein Bug im Utils-Bundle sein?
    Statt Doctrine\DBAL\Connection nutzt ihr ein DatabaseUtil aus dem Utils Bundle. Über Doctrine\DBAL\Connection sollte bei so einem insert Query der Feldname automatisch escaped werden (bin mir aber auch nicht zu 100% sicher).
    » sponsor me via GitHub or PayPal or Revolut

  11. #11
    Contao-Nutzer Avatar von koertho
    Registriert seit
    13.10.2022.
    Ort
    Mei?en
    Beiträge
    4

    Standard

    Das Util erzeugt aber auch nur nen Query aus dem Array und nutzt anschließen die Contao Datenbank-Klasse. Ist einfach ein Shorthand. Hätte man auch hier im Code machen könne, wäre aufs gleiche rausgekommen.
    Unser Utils-Bundle hat sicher noch ein paar Leichen im Keller, aber ich denke wir haben schon ganz gut aufgeräumt...

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Zitat Zitat von koertho Beitrag anzeigen
    Das Util erzeugt aber auch nur nen Query aus dem Array und nutzt anschließen die Contao Datenbank-Klasse.
    Es sollte aber Doctrine benutzt werden.
    » sponsor me via GitHub or PayPal or Revolut

  13. #13
    Contao-Nutzer Avatar von koertho
    Registriert seit
    13.10.2022.
    Ort
    Mei?en
    Beiträge
    4

    Standard

    Sicher. Es könnte vieles besser und anders gemacht sein. Aber leider verdienen wir damit kein Geld, nur unseren Code zu modernisieren. Er läuft und die Contao Datenbank-Klasse ist nicht deprecated und nutzt intern auch Doctrine. Nur weil es nicht den neusten Standards entspricht, muss es nicht schlecht sein.
    So, aber eigentlich geht es hier nicht um unser Utils-Bundle, welches hier nicht schuld ist, sondern um LDAP. Dazu habe ich einen Fix gebaut und noch keine Rückmeldung erhalten.

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Ich sag ja auch nicht, dass ihr das gratis machen sollt . Die betroffenen Leute sollten sowas halt finanzieren.
    » sponsor me via GitHub or PayPal or Revolut

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •