PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Berechtigungsprobleme



patges
16.11.06, 09:40
Hallo zusammen,

nach einem Crash vergangene Woche hab ich enorme Probleme mit meiner SQL-Datenbank die vorher ohne Probleme lief.
Dies ist die Fehlermeldung:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /typo3_src-3.7.0/t3lib/class.t3lib_db.php on line 895

Beim Ausführen der Anwendung bekomm ich an einigen Stellen "Permission denied" Fehler, also vermute ich stark, dass das irgendwas mit den Rechten zu tun haben könnte.

Der Fehler, also line 895 ist eine PHP-Funktion:

> function admin_get_fields($tableName) {
> $output = array();
>
> $columns_res = mysql_query('SHOW columns FROM
> '.$tableName, $th
> while($fieldRow = mysql_fetch_assoc($columns_res)) {
> $output[$fieldRow["Field"]] = $fieldRow;
> }
>
> return $output;
> }


Weiß jemand Rat und kann mir helfen ?


Danke und Greetz patges

scribble
16.11.06, 16:36
Die Funktion mysql_query() schickt eine Anfrage an die SQL-Datenbank. Wenn alles klappt, bekommst Du ein sogenanntes result set mit den Ergebnissen zurück, das Du z. B. mit mysql_fetch_assoc() weiter auswerten kannst. Tritt ein Problem auf, liefert mysql_query() einfach nur false zurück. Versuchst Du dieses false dann weiter auszuwerten, ist das eben keine "valid MySQL result ressource".

Was genau schiefgelaufen ist, kannst Du über die Fehlermeldung von MySQL herausbekommen. Dazu gibt es zwei Möglichkeiten: Entweder baust Du zwischen mysql_query() und mysql_fetch_assoc()
echo mysql_error($th);ein und provozierst den Fehler erneut. Oder Du schickst die Query testhalber auf der Komandozeile oder mit einem graphischen SQL-Client an die Datenbank und schaust dort, welche Fehlermeldung kommt. Dazu mußt Du natürlich noch die Variable $tableName durch einen passenden Wert ersetzen, also
SHOW columns FROM meine_tabelleNotfalls mußt Du alle Tabellen in Deiner Datenbank durchprobieren. Vielleicht kannst Du aufgrund der Stelle auf Deiner Webseite, wo der Fehler auftritt, eingrenzen, welche Tabellen in Frage kommen.

Bis dann,

scribble