Sven: Welche ADOdb Verbindung zur Nutzung von Prepared Statements?

Beitrag lesen

Hallo,

ich wollte für mein neuestes Projekt ADOdb nutzen... dadurch wäre ich unabhängig von dem Datenbank-System an sich, 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:

$user = "myuser";  
$password = "mypassword";  
  
$dbc = new PDO("mysql:host=localhost;dbname=mydb", $user, $password);

Anschließend kann man Prepared Statements nutzen:

$sql = "SELECT userid FROM users WHERE username = :username AND password = :password";  
$stmt = $dbc->prepare($sql);  
  
$stmt->bindParam( ':username', $_POST['username'] );

Auf der offiziellen Website von ADOdb wird jedoch diese Art der Verbindungsherstellung empfohlen:

  
require_once(BASEDIR.'/includes/adodb/adodb.inc.php');  
$db = ADONewConnection('mysql');  
$result = $db->Connect("$dbhost", "$dbuser", "$dbpass", "$dbname");

Das erscheint mir auch praktischer: Statt 'mysql' kann ich eine der vielen Datenbank-Typen angeben, die von ADOdb unterstützt werden. Aber Prepared Statements funktionieren damit nicht, oder? Wenn ich $db->bindParam() teste, erhalte ich jedenfalls eine Fehlermeldung:

"Fatal error: Call to a member function bindParam() on a non-object in \htdocs\index.php on line 23"

Gibt es nennenswerte Unterschiede zwischen beiden Varianten? Spricht etwas dagegen, Prepared Statements zu nutzen und die POST-Daten von ADOdb maskieren zu lassen?

Grüße
Sven