redaxo_url icon indicating copy to clipboard operation
redaxo_url copied to clipboard

InvalidArgumentException 'Database name can not be empty.' beim Artikel bearbeiten

Open omphteliba opened this issue 4 years ago • 17 comments

Redaxo: 5.11.2 PHP: 8.0.2

Ich bekomme eine InvalidArgumentException 'Database name can not be empty.' wenn ich versuche einen Artikel zu bearbeiten. Wenn ich das "URL" Addon deaktiviere verschwindet der Fehler.

omphteliba avatar Feb 15 '21 17:02 omphteliba

Könntest du bitte den Stack senden?

tbaddade avatar Feb 15 '21 18:02 tbaddade

Hallo Thomas, ich hatte schon redaxo_url 1.0.1 deinstalliert und die Beta v2 installiert. Nachdem ich die Beta deinstalliert und die v1.0.1 reinstalliert habe, ist das Problem weg.

omphteliba avatar Feb 16 '21 06:02 omphteliba

Wäre gut, wenn du noch die genaue Fehlermeldung senden könntest.

tbaddade avatar Feb 16 '21 07:02 tbaddade

Ok, es ist wieder aufgetreten, jetzt bei einem System mit Redaxo 5.11.2 und PHP 7.4.15. Jetzt habe ich auch die Whoops Seite vor mir:

InvalidArgumentException: Database name can not be empty. File: redaxo/src/core/lib/sql/sql.php Line: 155

Stacktrace
Function File Line
rex_sql::createConnection redaxo/src/core/lib/sql/sql.php 126
rex_sql->selectDB redaxo/src/core/lib/sql/sql.php 98
rex_sql->__construct redaxo/src/core/lib/sql/sql.php 1776
rex_sql::factory redaxo/src/addons/url/lib/Url/Generator.php 247
Url\Generator::generatePathFile redaxo/src/addons/url/lib/Url/Generator.php 668
Url\Generator::readPathFile redaxo/src/addons/url/lib/Url/Generator.php 661
Url\Generator::ensurePaths redaxo/src/addons/url/lib/Url/Generator.php 597
Url\Generator::getArticleIdByUrlParamKey redaxo/src/addons/url/lib/Url/Generator.php 636
Url\Generator::rewrite redaxo/src/addons/url/boot.php 53
rex_package->{closure} redaxo/src/core/lib/extension.php 49
rex_extension::{closure} redaxo/src/core/lib/util/timer.php 54
rex_timer::measure redaxo/src/core/lib/extension.php 56
rex_extension::registerPoint redaxo/src/addons/structure/functions/function_rex_url.php 39
rex_getUrl redaxo/src/addons/structure/plugins/version/boot.php 166
rex_package::{closure} redaxo/src/core/lib/extension.php 49
rex_extension::{closure} redaxo/src/core/lib/util/timer.php 54
rex_timer::measure redaxo/src/core/lib/extension.php 56
rex_extension::registerPoint redaxo/src/addons/structure/plugins/content/pages/content.php 428
include redaxo/src/core/lib/packages/package.php 250
rex_package->includeFile redaxo/src/core/lib/be/controller.php 476
rex_be_controller::{closure} redaxo/src/core/lib/util/timer.php 54
rex_timer::measure redaxo/src/core/lib/be/controller.php 477
rex_be_controller::includePath redaxo/src/core/lib/be/controller.php 415
rex_be_controller::includeCurrentPage redaxo/src/core/backend.php 235
require redaxo/src/core/boot.php 137
require redaxo/index.php 9
System report (REDAXO 5.11.2, PHP 7.4.15, MySQL 5.7.33)
REDAXO
Version 5.11.2
PHP
Version 7.4.15
OPcache yes
Xdebug no
Warning Das Setup wird ohne HTTPS/Verschlüsselung durchgeführt. Es wird empfohlen jegliche Frontend und Backend aufrufe nur mittels HTTPS durchzuführen, um die Privatsphäre und den Datenschutz zu gewährleisten.
Database
Version MySQL 5.7.33
Character set utf8
Server
OS Linux
SAPI fpm-fcgi
Webserver Apache/2.4.46
Request
Browser Chrome/88.0.4324.182
Protocol HTTP/1.1
HTTPS no
Packages
adminer 1.8.3
backup 2.6.3
be_password 2.0.0
be_style 2.11.1
be_style/customizer 2.11.0
be_style/redaxo 2.11.1
bloecks 3.0.0
bloecks/cutncopy 3.0.0
bloecks/dragndrop 3.0.0
bloecks/status 3.0.0
cronjob 2.7.1
cronjob/article_status 2.7.1
cronjob/optimize_tables 2.7.1
developer 3.9.0
feeds 3.1
global_settings 2.5.1
hyphenator 1.1.7
iconpicker 1.1.0
install 2.8.1
maintenance 2.5.1
markitup 3.6.0
mblock 3.1.0
media_manager 2.10.1
media_manager_autorewrite 2.0.0
mediapool 2.9.1
metainfo 2.7.3
mf_lastchanges 0.9
mform 5.3.1
mform/docs 1.0
minify 2.2
modulsammlung 4.15.2
modulsammlung/documentation 1.0
multiupload 2.1.3
multiupload/imageoptimizer 1.0.1
multiupload/upload_precompressor 1.0
navigation_factory 2.0.3
omi_citrix 1.0.0
omi_pardot 1.0.1
omi_sync 1.0
phpmailer 2.9.1
project dev
redactor2 4.1.0
structure 2.11.2
structure/content 2.11.2
structure/history 2.11.0
structure/version 2.11.0
template 1.1.0
theme 1.2.0
ui_tools 1.0.0
ui_tools/bootstrap-datetimepicker 4.17.47
ui_tools/custom_widgets 1.0.0
ui_tools/jquery-minicolors 2.2.7
ui_tools/selectize 0.2.0
url 1.0.1
users 2.7.1
watson 2.2.0
xcore 1.1.4
xoutputfilter 3.0.0-beta1
xoutputfilter/abbrev 3.0.0
xoutputfilter/backend 3.0.0
xoutputfilter/documentation 1.0.0
xoutputfilter/frontend 3.0.0
xoutputfilter/import_export 3.0.0
xoutputfilter/languages 3.0.0
yform 3.4.1
yform/docs 3.3.1
yform/email 3.4.1
yform/manager 3.4.1
yform/tools 3.4.1
yform_usability 1.4
yrewrite 2.7
yrewrite/lowercase-url 1.0

omphteliba avatar Feb 18 '21 12:02 omphteliba

Und hier habe ich auch noch den Systembericht:

System report (REDAXO 5.11.2, PHP 7.4.15, MySQL 5.7.33)
REDAXO
Version 5.11.2
PHP
Version 7.4.15
OPcache yes
Xdebug no
Warning Das Setup wird ohne HTTPS/Verschlüsselung durchgeführt. Es wird empfohlen jegliche Frontend und Backend aufrufe nur mittels HTTPS durchzuführen, um die Privatsphäre und den Datenschutz zu gewährleisten.
Database
Version MySQL 5.7.33
Character set utf8
Server
OS Linux
SAPI fpm-fcgi
Webserver Apache/2.4.46
Request
Browser Chrome/88.0.4324.182
Protocol HTTP/1.1
HTTPS no
Packages
adminer 1.8.3
backup 2.6.3
be_password 2.0.0
be_style 2.11.1
be_style/customizer 2.11.0
be_style/redaxo 2.11.1
bloecks 3.0.0
bloecks/cutncopy 3.0.0
bloecks/dragndrop 3.0.0
bloecks/status 3.0.0
cronjob 2.7.1
cronjob/article_status 2.7.1
cronjob/optimize_tables 2.7.1
developer 3.9.0
feeds 3.1
global_settings 2.5.1
hyphenator 1.1.7
iconpicker 1.1.0
install 2.8.1
maintenance 2.5.1
markitup 3.6.0
mblock 3.1.0
media_manager 2.10.1
media_manager_autorewrite 2.0.0
mediapool 2.9.1
metainfo 2.7.3
mf_lastchanges 0.9
mform 5.3.1
mform/docs 1.0
minify 2.2
modulsammlung 4.15.2
modulsammlung/documentation 1.0
multiupload 2.1.3
multiupload/imageoptimizer 1.0.1
multiupload/upload_precompressor 1.0
navigation_factory 2.0.3
omi_citrix 1.0.0
omi_pardot 1.0.1
omi_sync 1.0
phpmailer 2.9.1
project dev
redactor2 4.1.0
structure 2.11.2
structure/content 2.11.2
structure/history 2.11.0
structure/version 2.11.0
template 1.1.0
theme 1.2.0
ui_tools 1.0.0
ui_tools/bootstrap-datetimepicker 4.17.47
ui_tools/custom_widgets 1.0.0
ui_tools/jquery-minicolors 2.2.7
ui_tools/selectize 0.2.0
url 1.0.1
users 2.7.1
watson 2.2.0
xcore 1.1.4
xoutputfilter 3.0.0-beta1
xoutputfilter/abbrev 3.0.0
xoutputfilter/backend 3.0.0
xoutputfilter/documentation 1.0.0
xoutputfilter/frontend 3.0.0
xoutputfilter/import_export 3.0.0
xoutputfilter/languages 3.0.0
yform 3.4.1
yform/docs 3.3.1
yform/email 3.4.1
yform/manager 3.4.1
yform/tools 3.4.1
yform_usability 1.4
yrewrite 2.7
yrewrite/lowercase-url 1.0

omphteliba avatar Feb 18 '21 12:02 omphteliba

Greifst du auf eine zweite Datenbank zu? Könntest du unabhängig davon einmal hier $table dumpen und das Ergebnis hier posten?

tbaddade avatar Feb 18 '21 13:02 tbaddade

Ich habe zwei Datenbanken verwendet, bin aber grade dabei das rückgängig zu machen.

Hier der Dump von rex_url_generate

`INSERT INTO `rex_url_generate` (`id`, `article_id`, `clang_id`, `url`, `table`, `table_parameters`, `relation_table`, `relation_table_parameters`, `relation_insert`, `createdate`, `createuser`, `updatedate`, `updateuser`) VALUES
(1,	109,	1,	'',	'1_xxx_rex_jobs',	'{\"1_xxx_rex_jobs_field_1\":\"id\",\"1_xxx_rex_jobs_field_2\":\"titel\",\"1_xxx_rex_jobs_field_3\":\"\",\"1_xxx_rex_jobs_id\":\"id\",\"1_xxx_rex_jobs_clang_id\":\"\",\"1_xxx_rex_jobs_restriction_field\":\"\",\"1_xxx_rex_jobs_restriction_operator\":\"=\",\"1_xxx_rex_jobs_restriction_value\":\"\",\"1_xxx_rex_jobs_url_param_key\":\"\",\"1_xxx_rex_jobs_seo_title\":\"titel\",\"1_xxx_rex_jobs_seo_description\":\"description\",\"1_xxx_rex_jobs_seo_image\":\"\",\"1_xxx_rex_jobs_sitemap_add\":\"0\",\"1_xxx_rex_jobs_sitemap_frequency\":\"always\",\"1_xxx_rex_jobs_sitemap_priority\":\"1.0\",\"1_xxx_rex_jobs_sitemap_lastmod\":\"\",\"1_xxx_rex_jobs_path_names\":\"\",\"1_xxx_rex_jobs_path_categories\":\"0\",\"1_xxx_rex_jobs_relation_field\":\"\"}',	'',	'[]',	'before',	2017,	'omikron',	2021,	'oh');`

omphteliba avatar Feb 18 '21 13:02 omphteliba

Ich habe zwei Datenbanken verwendet, bin aber grade dabei das rückgängig zu machen.

Dann mach das erst einmal. Es sieht für mich danach aus, dass du eine DB ausgewählt hast, wo die zugehörigen Daten unvollständig sind.

tbaddade avatar Feb 18 '21 14:02 tbaddade

Dann mach das erst einmal.

Ist auf dem System schon vollzogen.

Es sieht für mich danach aus, dass du eine DB ausgewählt hast, wo die zugehörigen Daten unvollständig sind.

Was meinst Du damit? Daten in der Tabelle oder Tabellen-Struktur?

Ich habe redaxo_url gelöscht und neu installiert. Damit ist der obige Fehler verschwunden, aber ich kann jetzt keine neuen Einträge in "Urls generieren" anlegen.

omphteliba avatar Feb 18 '21 14:02 omphteliba

Ich habe im Redaxo Log noch was entdeckt, was auftritt bevor ich den Whoops im Frontend sehe:

image

Stammt dieser "offset 2" von der zweiten Datenbank und ist irgendwo gecacht, weil mal die zweite Datenbank benutzt wurde?

omphteliba avatar Feb 18 '21 16:02 omphteliba

Ich habe einen Workaround gefunden: ich habe in der Redaxo config den einzigen Datenbank Eintrag unter der Nummer 2 nochmal eingefügt. Dann geht auch die Weiterleitung und das Whoops ist verschwunden.

omphteliba avatar Feb 18 '21 16:02 omphteliba

Ich denke das ist hier recht speziell und würde erst einmal schließen. Falls weiterhin Probleme da sind, gerne wieder öffnen.

tbaddade avatar Feb 18 '21 17:02 tbaddade

@tbaddade ich habe das Problem nun auch, genau gleicher Fehler. Allerdings ist das eine frische Installation, ohne zweite Datenbank ...

Hoffentlich hilft dir das:

InvalidArgumentException: Database name can not be empty. File: redaxo/src/core/lib/sql/sql.php Line: 180

Stacktrace
Function File Line
rex_sql::createConnection redaxo/src/core/lib/sql/sql.php 127
rex_sql->selectDB redaxo/src/core/lib/sql/sql.php 156
rex_sql->getConnection redaxo/src/core/lib/sql/sql.php 1229
rex_sql->getArray redaxo/src/core/lib/sql/sql.php 1779
rex_sql->fetchTablesAndViews redaxo/src/core/lib/sql/sql.php 1721
rex_sql->getTablesAndViews redaxo/src/addons/url/lib/Url/Database.php 47
Url\Database::getSupportedTables redaxo/src/addons/url/pages/generator.profiles.php 382
require redaxo/src/core/lib/packages/package.php 233
rex_package->includeFile redaxo/src/core/lib/be/controller.php 503
rex_be_controller::{closure} redaxo/src/core/lib/util/timer.php 62
rex_timer::measure redaxo/src/core/lib/be/controller.php 485
rex_be_controller::includePath redaxo/src/core/lib/be/controller.php 453
rex_be_controller::includeCurrentPageSubPath redaxo/src/addons/url/pages/index.php 17
require redaxo/src/core/lib/packages/package.php 233
rex_package->includeFile redaxo/src/core/lib/be/controller.php 503
rex_be_controller::{closure} redaxo/src/core/lib/util/timer.php 62
rex_timer::measure redaxo/src/core/lib/be/controller.php 485
rex_be_controller::includePath redaxo/src/core/lib/be/controller.php 436
rex_be_controller::includeCurrentPage redaxo/src/core/backend.php 241
require redaxo/src/core/boot.php 155
require redaxo/index.php 10
System report (REDAXO 5.15.1, PHP 8.2.4, MariaDB 10.3.38)
REDAXO
Version 5.15.1
PHP
Version 8.2.4
OPcache yes
Xdebug no
Database
Version MariaDB 10.3.38
Character set utf8
Server
OS Linux
SAPI cgi-fcgi
Webserver Apache
Request
Browser Firefox/111.0
Protocol HTTP/1.0
HTTPS yes
Packages
adminer 1.9.3
article_presets 1.2.0
backup 2.9.0
be_password 2.0.1
be_style 3.2.0
be_style/customizer 3.2.0
be_style/redaxo 3.2.0
be_tools 1.7.8
bloecks 3.1.1
bloecks/cutncopy 3.1.1
bloecks/dragndrop 3.1.1
bloecks/status 3.1.1
bs5_iconpicker 1.0.5
clear_content 1.1.1
consent_manager 4.0.3
cropper 1.4.0
developer 3.9.2
focuspoint 4.0.4
hyphenator 1.3.0
install 2.11.1
massif 1.0.0
massif_minify 1.3.3
massif_settings 1.0.0
mblock 3.4.12
media_manager 2.14.0
media_manager_responsive 1.1.4
media_negotiator 2.0.0
mediapool 2.13.0
metainfo 2.10.0
mform 7.2.8
phpmailer 2.12.0
plyr 3.20.5
project dev
speed_up 1.3.1
sprog 1.5.1
statistics 2.6.0
statistics/media 2.6.0
structure 2.15.0
structure/content 2.15.0
structure/history 2.15.0
structure_tweaks 1.4.0
theme 1.3.3
theme_lock 1.0.0
tinymce5 1.2.17
ui_tools 1.2.2
ui_tools/bootstrap-datetimepicker 4.17.47
ui_tools/jquery-minicolors 2.4.0
ui_tools/selectize 0.2.0
uploader 2.4.1
url 2.1.0
useragent 2.3.0
users 2.10.0
yform 4.1.0
yform/email 4.1.0
yform/manager 4.1.0
yform/tools 4.1.0
yform_adminer 1.2.0
yform_geo_osm 1.2.8
yform_quick_edit 1.0.1
yform_spam_protection 2.0-beta4
yform_usability 2.0.9
yrewrite 2.10.0

ynamite avatar Apr 01 '23 17:04 ynamite

Wenn ich wie von @omphteliba vorgeschlagen bei der zweiten DB dieselbe DB-Credentials wie bei der ersten eintrage, klappt's. Aber wie geschrieben, es war gar nie eine zweite im Einsatz ... hm.

ynamite avatar Apr 01 '23 17:04 ynamite

Wurde eine leere 2. Datenbank in der config.yml definiert? So wie hier:

https://github.com/redaxo/redaxo/blob/b88ed5891e159773b8324e33f9602e1ad19d850e/redaxo/src/core/default.config.yml#L92-L100

Und wenn man die leere Verbindung löscht, ist dann das Problem gelöst?

alxndr-w avatar Apr 01 '23 17:04 alxndr-w

Muss ich testen. Aber ist in der config.yml nicht per default eine zweite, leere Verbindung vorgegeben?

ynamite avatar Apr 01 '23 18:04 ynamite

@alxndr-w nope, geht nicht wenn die zweite Verbindung fehlt.

ynamite avatar Apr 03 '23 17:04 ynamite