Moin,
folgende "einfache" Routine (dachte ich) tut nicht wie ich erwarte.
Was erwarte ich: die erste Abfrage liefert Daten, die nacheinander in der while Schleife entsprechend bearbeitet werden sollen. Doch leider: store_result liefert nichts (entspricht FALSE), die while Schleife wird nie durchlaufen.
Die Testausgaben:
Frage: was ist falsch: errno, error, field_count liefern doch Ergebnisse, die besagen: Abfrage war erfolgreich????
base_query ist gemappt auf query, falls notwendig liefere ich die Klasse nach.... aber ehrlich, da wird nichts zermarmelt.
Ein Tipp?, Gruß Wilfried
folgende "einfache" Routine (dachte ich) tut nicht wie ich erwarte.
PHP-Code:
$sql = "
SELECT
ord,
access
FROM
z_session
WHERE
!isnull(sessionid) &&
!isnull(access_end) &&
access_end < ". (time()-600)
;
if ($result = $this->base_query($sql)){
echo "Testausgabe 1<br>result |";var_dump($result);echo "|<br>"; /* Testausgabe 1 */
if ($store = $this->store_result()){ /* "$store =" nur zum testen */
while ($row = $result->fetch_assoc()) {
$sql = "
UPDATE
z_session
SET
sessionid = NULL
WHERE
ord = ".$row['ord']
;
$this->base_query($sql);
$hit->insert_Hit('tag_'.date("z",$row['access']), 'counter_gesamt',date("Y",$row['access']));
}
$this->free_result($result);
}
echo "Testausgabe 2<br>store |".$store."| info |".$this->info."| affected_rows |".$this->affected_rows.
"| errno |".$this->errno."| error |".$this->error."| field_count |".$this->field_count."|<br>"; /* Testausgabe 2*/
}
Die Testausgaben:
PHP-Code:
Testausgabe 1
result |object(mysqli_result)#27 (5) { ["current_field"]=> int(0) ["field_count"]=> int(2) ["lengths"]=> NULL
["num_rows"]=> int(16) ["type"]=> int(0) } |
Testausgabe 2
store || info || affected_rows |16| errno |0| error || field_count |2|
base_query ist gemappt auf query, falls notwendig liefere ich die Klasse nach.... aber ehrlich, da wird nichts zermarmelt.
Ein Tipp?, Gruß Wilfried
Kommentar