Invalid argument supplied for foreach() in oxbase.php line 1059

Guten Tag,

wir hatten soeben untenstehenden Fehler mit OXID 4.7.5.

Nach einer Stunde schwitzender Fehlersuche fanden wir heraus, daß der Rückgabewert von MetaColumns() in mysql_meta_module.inc der adodblite false beträgt. Ursache dafür war wiederum ein MySQL-Konfigurationsproblem, da ein “SHOW COLUMNS FROM” in ein temporäres File schreiben muß, was in unserem Falle nicht geklappt hat.

[B]Vorschlag an die OXID-Entwickler:[/B]
Bei Aufruf von Metadata() prüfen, ob der Rückgabewert false ist, und wenn ja, entsprechenden Fehler loggen. Im Moment passieren sehr wirre Dinge, ohne daß man einen Fehler bekommt. Performancetechnisch ist das unkritisch, weil ein erfolgreicher Rückgabewert sowieso gecacht wird.

Gibt es Planungen von Seiten OXID, die ziemlich unsauber geschriebene AdoDB gegen eine Alternative auszutauschen?


 PHP Warning:  Invalid argument supplied for foreach() in /home/sol_test/public_html/core/oxbase.php on line 1059
 PHP Stack trace:
 PHP   1. {main}() /home/sol_test/public_html/admin/index.php:0
 PHP   2. require_once() /home/sol_test/public_html/admin/index.php:28
 PHP   3. Oxid::run() /home/sol_test/public_html/index.php:27
 PHP   4. oxShopControl->start() /home/sol_test/public_html/core/oxid.php:40
 PHP   5. oxShopControl->_process() /home/sol_test/public_html/core/oxshopcontrol.php:155
 PHP   6. oxShopControl->_initializeViewObject() /home/sol_test/public_html/core/oxshopcontrol.php:386
 PHP   7. oxNew() /home/sol_test/public_html/core/oxshopcontrol.php:438
 PHP   8. call_user_func_array() /home/sol_test/public_html/core/oxfunctions.php:383
 PHP   9. oxUtilsObject->oxNew() /home/sol_test/public_html/core/oxfunctions.php:0
 PHP  10. oxUtilsObject->_getObject() /home/sol_test/public_html/core/oxutilsobject.php:190
 PHP  11. oxAdminView->__construct() /home/sol_test/public_html/core/oxutilsobject.php:215
 PHP  12. oxAdminView->_getEditShop() /home/sol_test/public_html/application/controllers/admin/oxadminview.php:122
 PHP  13. oxConfig->getActiveShop() /home/sol_test/public_html/application/controllers/admin/oxadminview.php:140
 PHP  14. oxNew() /home/sol_test/public_html/core/oxconfig.php:2034
 PHP  15. call_user_func_array() /home/sol_test/public_html/core/oxfunctions.php:383
 PHP  16. oxUtilsObject->oxNew() /home/sol_test/public_html/core/oxfunctions.php:0
 PHP  17. oxUtilsObject->_getObject() /home/sol_test/public_html/core/oxutilsobject.php:190
 PHP  18. oxShop->__construct() /home/sol_test/public_html/core/oxutilsobject.php:215
 PHP  19. oxBase->init() /home/sol_test/public_html/application/models/oxshop.php:53
 PHP  20. oxBase->_initDataStructure() /home/sol_test/public_html/core/oxbase.php:408
 PHP  21. oxI18n->_getNonCachedFieldNames() /home/sol_test/public_html/core/oxbase.php:1026
 PHP  22. oxBase->_getNonCachedFieldNames() /home/sol_test/public_html/core/oxi18n.php:292
 PHP Fatal error:  Call to a member function getRawValue() on a non-object in /home/sol_test/public_html/application/controllers/admin/oxadminview.php on line 124
 PHP Stack trace:
 PHP   1. {main}() /home/sol_test/public_html/admin/index.php:0
 PHP   2. require_once() /home/sol_test/public_html/admin/index.php:28
 PHP   3. Oxid::run() /home/sol_test/public_html/index.php:27
 PHP   4. oxShopControl->start() /home/sol_test/public_html/core/oxid.php:40
 PHP   5. oxShopControl->_process() /home/sol_test/public_html/core/oxshopcontrol.php:155
 PHP   6. oxShopControl->_initializeViewObject() /home/sol_test/public_html/core/oxshopcontrol.php:386
 PHP   7. oxNew() /home/sol_test/public_html/core/oxshopcontrol.php:438
 PHP   8. call_user_func_array() /home/sol_test/public_html/core/oxfunctions.php:383
 PHP   9. oxUtilsObject->oxNew() /home/sol_test/public_html/core/oxfunctions.php:0
 PHP  10. oxUtilsObject->_getObject() /home/sol_test/public_html/core/oxutilsobject.php:190
 PHP  11. oxAdminView->__construct() /home/sol_test/public_html/core/oxutilsobject.php:215

Hallo @vschmi,

kennst Du diese Mailingliste?

Ich denke, die Info wäre dort besser aufgehoben, denn dort lesen die Entwickler direkt mit. Wenn Du Lust (und vielleicht schon einen Fix) hast, kannst Du das Verhalten auch direkt mit einer Contribution beeinflussen:

Und ja, ADODB muss perspektivisch raus :slight_smile:

Danke und Gruß!