Vollständige Version anzeigen : Nach MySQL Update Fehlermeldungen durch mysql_fetch_array Abfragen
Moin zusammen,
nachden mein Hoster in den letzten Tagen bei meinem Server neue und leistungsfähigere Hardware einbaute, die Festplatte austauschte und auf Debian7 etch 4 umstellte, sowie eine neue MySQL Version (5.0.32) einspielte, häufen sich Fehlermeldungen die alle wie folgt aussehen:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web2/html/topframe_text.php on line 104
In besagter Zeile der topframe_text php steht folgendes:
$forced_stat = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_forced_stat WHERE typ = 'text' and sponsor='".$text['sponsor']."' and datum='".$heute."'"));
die Frage ist nun, wie ich generell die mysql_fetch_array abfragen ändern kann, dass keine Fehlermeldungen mehr wie die oben genannte entstehen.
P.S.: Die PHP Version laut meiner phpinfo.php ist die Version 4.4.4-8+etch4
Mach mal kurz folgendes ersetze den von dir geposteten Code mit folgendem:
$forced_stat_sql = db_query("SELECT * FROM ".$db_prefix."_forced_stat WHERE typ = 'text' and sponsor='".$text['sponsor']."' and datum='".$heute."'") or die(mysql_error());
$forced_stat = mysql_fetch_array($forced_stat_sql); Und dann ruf mal die Datei auf ^^ und poste die Fehlermeldung die dann kommen wird :)
Prüfe ausserdem mal ob es eine oder mehrere Tabellen zerschossen hat, wenn ja repariere die mal per phpMyAdmin.
Gruß
Gremlin
Und dann ruf mal die Datei auf ^^ und poste die Fehlermeldung die dann kommen wird :)
Table 'usr_web2_1.vms_forced_stat' doesn't exist
^^schon seltsam, laut DB soll sie vorhanden sein
Prüfe ausserdem mal ob es eine oder mehrere Tabellen zerschossen hat, wenn ja repariere die mal per phpMyAdmin.
^^ reparieren lässt sie sich nicht mehr, aber ich schau mal, ob ich irgendwo auf der Platte noch das installations SQL von diesem Addon habe
Ist sie denn als crashed markiert?
Ist es eine MyISAM tabelle?
Ob die Tabelle als crashed markiert ist kann ich nicht sagen, die DB besteht aus 369 Einträgen/Tabellen und PHPMyAdmin zeigt mir deshalb schon länger das Hauptfenster direkt beim Aufruf der DB nicht mehr an, nur noch, wenn ich eine Tabelle aus dem Linken Menue aufrufe, wird im hauptfenster noch was angezeigt. Laut meinem Hoster ist das aber bei der Menge an Tabellen normal, dass PHPMyAdmin das Hauptfenster nicht mehr anzeigt. Löschen lässt sich die Tabelle vms_forced-stat auch nicht, geschweige denn neu anlegen. Bei der Löschung heisst es, die Tabelle existiert nicht, bei anlegen heisst es, diese würde bereits existieren
Die Tabelle vms_forced_stat ist keine MyISAM, ich hab die installations SQL vorhin gefunden. Wenn ich jetzt nicht falsch liege handelt es sich um InnoDB.
Ob die Tabelle als crashed markiert ist kann ich nicht sagen
Mach mal in phpMyAdmin:
CHECK TABLE `vms_forced_stat`
Die Tabelle vms_forced_stat ist keine MyISAM, ich hab die installations SQL vorhin gefunden. Wenn ich jetzt nicht falsch liege handelt es sich um InnoDB.
Wenns eine InnoDB ist und keine MyISAM und sie gecrashed sein sollte kann sie nicht repariert werden sprich sie ist weiterhin da, aber doch nicht. Was zur folge hat das man sie nicht löschen kann weil sie nicht da ist, aber auch nicht erstellen kann weil sie schon vorhanden ist :rolleyes: mir ist bislang kein Weg bekannt eine InnoDB zu reparieren.
Gruß
Gremlin
So, habs mal ausgeführt mit folgendem ergbnis:
Table Op Msg_type Msg_text
usr_web2_1.vms_forced_stat check error Table 'usr_web2_1.vms_forced_stat' doesn't exist
demnach isse schrott
Eigentlich sollte wenn sie gecrashed ist der Fehler
"Table was marked as crashed and should be repaired"
kommen oder
#1016 - Can't open file: 'vms_forced_stat.InnoDB'. (errno: 1)
Kannst ja mal folgenden Befehl probieren: (vllt ist es ja doch keine innodb)
REPAIR TABLE vms_forced_stat EXTENDED
Die selbe meldung nur eben statt check jetzt repair.
und wenn ich danach gehe:
CREATE TABLE `vms_forced_stat` (
`datum` int(11) NOT NULL,
`typ` varchar(16) NOT NULL,
`sponsor` varchar(32) NOT NULL,
`klicks` mediumint(4) NOT NULL,
`verdienst` double(100,2) NOT NULL,
`adminverdienst` double(100,2) NOT NULL,
KEY `sponsor` (`sponsor`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
kanns meines Wissens nach nur um eine InnoDB handeln. Nungut, ich werde mal weiterhin die einzelnen Tabellen exportieren und in eine andere DB einpflegen, mal sehen wieviele Tabellen noch geschrottet sein könnten
€dit: es hat neben der vms_forced_stat nur noch die log Tabelle eines Slots erwischt.
vBulletin® v3.8.0, Copyright ©2000-2012, Jelsoft Enterprises Ltd.