WordPress Plugin Cystats – Fehlermeldung „Warning: Invalid argument supplied for foreach() in..“ beheben

Das WordPress Statistik Plugin „Cystats“ setze ich in einigen Blogs ein, da es einen schnellen Blick auf aktuelle Zahlen (wie Referer, Visits etc.) ermöglicht. Es reicht nicht an den Funktionsumfang von Google Analytics heran, bietet aber im Gegensatz mehr an Aktualität.

Hier im Open Source Blog machte das Plugin allerdings Probleme, die sich in dieser Fehlermeldung auf der Cystats Seite im WordPress Backend zeigten:

Warning: Invalid argument supplied for foreach() in /home/www/osblog/htdocs/wp-content/plugins/cystats/includes/view.class.php on line 645

Auch in den Logfiles des Apache schlug sich das Problem nieder – und diese waren auskunftsfreudiger bzw. etwas konkreter mit der Fehlerangabe. Unter vielen weiteren konnte man eindeutig sehen, was los ist: Es soll in nicht existente Tabellen geschrieben werden:

WordPress database error Table ‚osblogsql1.wp_TABLE_STATISTICS‘ doesn’t exist for query INSERT INTO wp_TABLE_STATISTICS (name,type,val1,val2,val3) VALUES (‚visits_year‘,’2′,’2009′,’0′,’1′) made by require, require_once, do_action, call_user_func_array, cystats_update_data, statistics->update

Dass die Tabellen auch auf Datenbankebene nicht zu sehen waren, brauche ich sicher nicht gesondert zu erwähnen 😉

Leider verfügt Cystats über keinerlei Routinen zur Behandlung solcher Fehler, sodass man bei der Fehleranalyse etwas im Dunkeln stochert.

Es lag dann letztlich daran, dass der verwendete Datenbankuser einfach keine Tabellen anlegen durfte. Als ich ihm dieses Recht einräumte, legte Cystats dann bei der erneuten Aktivierung des Plugins die Tabellen automatisch an.

Leider scheint die Verbreitung von Cystats noch nicht allzu hoch zu sein – eine Google Recherche brachte diesen Lösungsweg nämlich leider nicht zu Tage.

2 Kommentare

Schreibe einen Kommentar»
  1. Hello, sorry to bother you but I am having this same issue and I don’t know if it’s the translation software or what but I cannot understand what I am supposed to do to fix it…

  2. Hi,

    no problem – the solution is pretty simple: the database user I used first did not have the right to create tables (and cytstats needs to create 2 tables).

    To fix it:

    1) Grant the needed rights to the mysql user you are using for wordpress

    2) reload the priviledges (or restart the mysql server)

    3) deactivate the cystats plugin

    4) activate it again (it’ll then create the missing tables…)

    …and you should be done!

    Best regards,
    André

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.