Invalid argument

Cachet rechenintensive Vorgänge bei der Darstellung von Beiträgen. Dadurch wird die Performance des phpBB stabilisiert und teilweise sogar erheblich verbessert.

Moderator: Supporter

Beitragvon oxpus » 24. Jan 2009 20:33

Ach ja, es löst ja dennoch zunächst aus.
So wäre es korrekt:
Code: Alles auswählen
if(!($cached_posts_array[$i] && $result = $db->sql_query($sql)))
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon Dungeonwatcher » 24. Jan 2009 20:41

Hi! 8)

Auch das funktioniert nicht. Die bemängelte Codezeile kommt nämlich bereits vor der zu ersetzenden. :(
Benutzeravatar
Dungeonwatcher
User
 
Beiträge: 95
Registriert: 4. Nov 2005 09:52
Wohnort: Berlin

Beitragvon oxpus » 24. Jan 2009 21:01

Wie jetzt?
Ich denke mit Umstellung des zuerst von Dir genannten Code-Blockes auf eine andere Variante kommt ein SQL-Fehler und den habe ich zu beheben versucht...
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon Dungeonwatcher » 24. Jan 2009 21:13

oxpus hat geschrieben:Ich denke mit Umstellung des zuerst von Dir genannten Code-Blockes auf eine andere Variante kommt ein SQL-Fehler


Korrekt.

und den habe ich zu beheben versucht...


Was auch super ist. Nur klappt's halt noch nicht. :x

Die zu ersetzende Zeile kommt halt erst nach dem SQL Code. Es gibt diese zwar auch davor, dann blubbert aber eine andere Codestelle wegen SQL Fehler. Ich hänge diese Datei mal kurz hier ran.
Dateianhänge
cps-module_resync.zip
(2.73 KiB) 1220-mal heruntergeladen
Benutzeravatar
Dungeonwatcher
User
 
Beiträge: 95
Registriert: 4. Nov 2005 09:52
Wohnort: Berlin

Beitragvon oxpus » 25. Jan 2009 14:48

Die Zeile löst doch erst das SQL-Statement aus und daher sollte sie auch prüfen, ob besagte Variable gefüllt ist, da sie ja in der Fehlermeldung leer war und dann eben das SQL-Statement nicht ausführen!!

Man kann es auch so schreiben:
Code: Alles auswählen
for ($i = 0; $i <= count($cached_posts_array)-1; $i++)
{
   $cachefile = $phpbb_root_path.'cache/posts/post_'.$cached_posts_array[$i].'.gz';
   if ($cached_posts_array[$i])
   {
      $sql = "UPDATE " . POSTS_TABLE . "
         SET parsed = 1, cache_file_md5 = '" . md5_file($cachefile) . "' , dont_cache = 0
         WHERE post_id = $cached_posts_array[$i]
            AND parsed = 0";
      if(!$result = $db->sql_query($sql))
      {
         message_die(GENERAL_ERROR, 'Could not update parse info', '', __LINE__, __FILE__, $sql);
      }
      $corrected = $corrected + $db->sql_affectedrows($result);
   }
}

;)
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon Dungeonwatcher » 25. Jan 2009 14:57

Hi großer Meister! 8)

Eingebaut und es will immer noch nicht:

SQL Error : 1064 Fehler in der SQL-Syntax. Bitte den korrekten Syntax im Handbuch nachschlagen bei 'AND dont_cache = 1' in Zeile 4

UPDATE phpbb_posts SET parsed = 1, cache_file_md5 = '' , dont_cache = 0 WHERE post_id = AND dont_cache = 1

Line : 94
File : cps-module_resync.php


:(

Ist evtl. an meinem Code was falsch?

Code: Alles auswählen
if ($files_cache) 

   foreach ($files_cache as $cachefile) 
   { 
      $cached_posts_array[] = substr(str_replace('.gz', '', str_replace($phpbb_root_path.'cache/posts/', '', $file)), strrpos(str_replace('.gz', '', str_replace($phpbb_root_path.'cache/posts/', '', $file)), '_')+1 ); 
   } 
}
Benutzeravatar
Dungeonwatcher
User
 
Beiträge: 95
Registriert: 4. Nov 2005 09:52
Wohnort: Berlin

Beitragvon oxpus » 25. Jan 2009 15:47

Die Fehlermeldung kann gar nicht aufkommen, wenn die Variable leer ist und damit die SQL-Anweisung schlicht nicht ausgeführt wird.
Häng doch mal die jetzige Version von der Datei hier an, mit meiner allerletzten Änderung.
Damit kann theoretisch überhaupt keine SQL-Anwisung ausgeführt und damit der Fehler aufkommen.
Alles andere wäre gegen meinen logischen Verstand...

Ausser, Du hattest eine andere Code-Stelle hier gepostet, als die Fehlermeldung anzeigt ?!?
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon Dungeonwatcher » 25. Jan 2009 15:58

oxpus hat geschrieben:Die Fehlermeldung kann gar nicht aufkommen, wenn die Variable leer ist und damit die SQL-Anweisung schlicht nicht ausgeführt wird.


Mein system und ich waren schon immer Sonderlinge... :roll:

Häng doch mal die jetzige Version von der Datei hier an, mit meiner allerletzten Änderung.


Geschehen.

Damit kann theoretisch überhaupt keine SQL-Anwisung ausgeführt und damit der Fehler aufkommen.
Alles andere wäre gegen meinen logischen Verstand...


Oha.

Ausser, Du hattest eine andere Code-Stelle hier gepostet, als die Fehlermeldung anzeigt ?!?


Jedenfalls nicht bewusst.

Es betrifft die Zeilen 45 - 83
Dateianhänge
cps-module_resync.zip
(4.12 KiB) 1198-mal heruntergeladen
Benutzeravatar
Dungeonwatcher
User
 
Beiträge: 95
Registriert: 4. Nov 2005 09:52
Wohnort: Berlin

Beitragvon oxpus » 25. Jan 2009 20:07

Ahnte ich es doch: Lange um den heissen Brei herumgepostet.
Es waren 2 sehr ähnliche SQL-Anweisungen vorhanden, die beide angepasst werden mussten.
Ich habe aus den beiden nun eine gemacht, so spart man sich rund die Hälfte unnötiger Abfragen und der Fehler sollte nun auch endlich behoben sein...
Dateianhänge
cps-module_resync.zip
(1.39 KiB) 1232-mal heruntergeladen
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon Dungeonwatcher » 25. Jan 2009 20:21

oxpus hat geschrieben:Ahnte ich es doch: Lange um den heissen Brei herumgepostet.


Das sagst du so einfach. :roll:

Es waren 2 sehr ähnliche SQL-Anweisungen vorhanden, die beide angepasst werden mussten.
Ich habe aus den beiden nun eine gemacht, so spart man sich rund die Hälfte unnötiger Abfragen und der Fehler sollte nun auch endlich behoben sein...


Ich glaube das war keine so gute Idee.
Dieser Fehler ist behoben., aber nun blubbert das CPS rum, das alle gecachten Beiträge fehlerhaft sind. :oops:
Benutzeravatar
Dungeonwatcher
User
 
Beiträge: 95
Registriert: 4. Nov 2005 09:52
Wohnort: Berlin

VorherigeNächste

Zurück zu Cache Post System



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste