echo $begrüßung;
Also muss ich abhängig von der Art der Abfrage entweder mysql_num_rows oder mysql_affected_rows verwenden. Bloß, wie erkenne ich in der Funktion um welche Art der Abfrage es sich handelt? Wenn ich es vorher nicht weiß, dann kriege ich ja zu recht den berühmten "invalid mysql resource" Fehler.
Den bekommst du nur dann, wenn du blind das Ergebnis einer Funktion an eine andere weitergibst, ohne es vorher zu prüfen.
Ich halte die Idee einer Superfunktion nicht für besonders praktisch.
Beispielsweise eine Abfrage mit Ergebnismenge: Du gibst an den aufrufenden Programmteil nur die Anzahl der Datensätze weiter, wie kommt man dann an die eigentlichen Datensätze? Warum ist die Information der Größe des Ergebnisses nicht an das Ergebnis-Objekt/-Array gebunden bzw. dort abfragbar? Falls dies überhaupt interessiert, denn hauptsächlich will man doch die Datensätze. Zum reinen Zählen gibt es effektivere Methoden (COUNT()).
ich schreibe gerade eine Funktion in PHP5, die die Datenbankabfragen gegen MySQL5 ausführt. Wenn ich ein SELECT-Statement absetze, dann liefert diese mir das Ergebnis sowie Anzahl der gefundenen Datensätze. Wenn es allerdings UPDATE oder DELETE ist, dann brauche ich die Anzahl der betroffenen Datensätze.
Was machst du bei INSERT? Das kannst du nicht mittels True/False/Ressource von einem UPDATE unterscheiden. Da wird die Anzahl der betroffenen Datensätze meist 1 sein, was relativ uninteressant ist, da sich Erfolg oder Misserfolg am Rückgabewert der Query-Funktion ablesen lässt. Interessanter für die Anwendung wäre wahrscheinlich die ID des eben eingefügten Datensatzes.
Warum soll die Anwendung eine recht unwichtige statistische Information zurückbekommen anstatt des eigentlich interessierenden Ergebnisses?
Wenn du eine Datenbank-Abstraktion schreibst, sowas gibt es schon, ist auch in PHP5 enthalten und nennt sich z.B. PDO.
Ich nehme an, dass du den Teil der Geschäftslogik (=der eigentliche Sinn eines Programms) deiner Anwendung mit dem Zusammenbau der SQL-Befehle durchsetzt hast. Deine Superfunktion kapselt dann recht wenig. Warum muss sich die Anwendung darum kümmern, wie die SQL-Statements zusammengebaut werden? Warum muss sie überhaupt Wissen über die Quelle und Details der Abfrage haben?
Schreib dir doch lieber Funktionen, die jeweils speziell eine der benötigen Datenbankhandlungen kapseln, Parameter entgegennehmen, die noch keinen direkten Bezug zur eigentlichen Datenhaltung benötigen, und die ein Ergebnis zurückliefern, das für die jeweilige Aufgabe am sinnvollsten ist.
echo "$verabschiedung $name";