dedlfix: Ausgabe eines "allgemeinen" MySQL-Befehls sehen;zB analyze table

Beitrag lesen

echo $begrüßung;

Natürlich - wie bei absolut jeder anderen fehlerfreien Query, die du darüber absetzt, auch.
Sorry, aber das ist falsch - mysql_query() gibt normalerweise eine Resourcen-Kennung zurück, siehe http://at.php.net/manual/de/function.mysql-query.php

Eine Ressourcenkennung wird durch PHPs automatische Typumwandlung auch als true erkannt. Da du keinen Code gepostet hast wird wahsagas Glaskugel vermutlich so etwas angezeigt haben:

if ($result = mysql_query(...)) {
  // true
} else {
  // false
}

Woraufhin er möglicherweise annahm, dass du so ein typumgewandeltes true meinst. Hast du tatsächlich etwas rausbekommen, das von var_dump() als "bool(true)" angezeigt wurde?

"Normalerweise" kennt mysql_query drei Rückgabewerte: false im Fehlerfall, true bei Statements, die keine Ergebnismenge zurückliefern (z.B. INSERT) und eine Ressourcen-Kennung für Statements mit Ergebnismenge.

Eine ANALYZE TABLE-Query gibt das zurück, was eine einfache SELECT-Query auch zurückgibt - ein Menge von Datensätzen.

Das stimmt auch nicht. ANALYZE TABLE gibt so was wie das hier zurück; keine Datensätze.


| Table      | Op      | Msg_type | Msg_text |

| db.tabelle | analyze | status   | OK       |

Das ist in der Tat kein Datensatz im eigentlichen Sinne. Aber es ist eine Ergebnismenge. Einer Ergebnismenge können Datensätze zu Grunde liegen, müssen aber nicht. Das Ergebnis eines SELECT COUNT(*) FROM table ist kein Datensatz, aber eine Ergebnismenge. Ergebnismengen, die ebenfalls keine Datensätze sind, bekommt man beispielsweise auch von DESCRIBE, SHOW oder eben auch von ANALYZE TABLE

Der Msg_text kann aber z.B. auch "Table is already up to date" lauten, und genau das hätte ich eben gern von PHP aus festgestellt.

Frage die Ergebnismenge in der üblichen Weise ab. Genau so wie du es nach einem SELECT machen würdest: mysql_fetch_*()

echo "$verabschiedung $name";