echo $begrüßung;
ich wollte für mein neuestes Projekt ADOdb nutzen... dadurch wäre ich unabhängig von dem Datenbank-System an sich, [...]
Das halte ich für einen der populären Irrtürmer beim Einsatz von Datenbankabstraktionsschichten. Richtiger finde ich, wenn du aus Portabilitätsgründen auf einen DB-Layer setzt, dass du nun nur noch grundlegendes SQL sprechen kannst, und dich damit teilweise erheblichen Einbußen bei Leistungsmerkmalen hingeben musst. Viele Dinge, die ein DBMS effektiver als eine abfragende Umgebung lösen kann sind auf proprietäre Weise gelöst und damit nicht portabel. Einen Vorteil sehe ich nur darin, dass die Handhabung der Funktionen, mit denen man eine Query absetzt oder das Ergebnis abholt (Fetch) gleich bleibt.
Beim Beispiel Prepared Statements muss man teilweise auch mit DB-Layer individuelle Schreibweisen bei den Platzhalternamen verwenden.
[...] und was mir auch gefallen hat, dass ADOdb für mich POST-Daten maskieren kann.
Ich habe diese Seite entdeckt, da wird das ausführlich beschrieben: Prepared Statements
Demnach muss man eine PDO-Verbindung herstellen:
ADO ist aber nicht PDO. ADO, PDO und die beiden im Artikel kurz erwähnten PEAR::DB und PEAR::MDB2 sind jeweils verschiedene DB-Layer-Implementationen. Die Bedienungsweise des einen am anderen anwenden zu wollen funktioniert nicht. Gehe gemäß der jeweiligen Dokumentation des Systemes vor.
Gibt es nennenswerte Unterschiede zwischen beiden Varianten?
Sicher. ADO ist in PHP geschrieben, PDO ein in PHP integriertes Modul. Die restlichen Eigenarten stehen in der jeweiligen Dokumentation.
Spricht etwas dagegen, Prepared Statements zu nutzen und die POST-Daten von ADOdb maskieren zu lassen?
Ja, du kannst nicht beide Systeme mischen. Beide bieten aber beide von dir gewünschten Features an. Aber auch bei diesen ist es nicht notwendig, sie zu mischen. Entweder Prepared Statements verwenden, oder Statement selbst zusammenbauen, dann aber mit der jeweils notwendigen kontextgerechten Notation von Daten. Eine Mischform ist zwar möglich, aber in vermutlich allen Fällen unsinnig und durch Prepared Statements ersetzbar.
$result = $db->Connect("$dbhost", "$dbuser", "$dbpass", "$dbname");
Einzeln stehende Variablennamen in "" einzurahmen ist unsinnig.
echo "$verabschiedung $name";