hawkmaster: PDO maskieren wie mysql_real_escape_string

Beitrag lesen

Vielen Dank dedlfix,

ich lese zwar schon viel im PDO manual aber es ist halt doch recht neu für mich. Zumal ich mich bisher auch nicht so mit der objektorientierten Programmierung beschäftigt habe.

Du scheinst dich gut mit PDO auszukennen.Darf ich dich nochmals zu meinem ersten Versuch was fragen:
So war es bsiher mit mysql():
----------------------------------------------------
$sql_rootdir = mysql_query("SELECT ConfigDirectoriesPath  FROM configdirectories WHERE ConfigDirectoriesName = 'RootDirectories'") or mysql_error();
$row_rootdir = mysql_fetch_array($sql_rootdir);
if(($row_rootdir['ConfigDirectoriesPath'] == "")OR ($row_rootdir['ConfigDirectoriesPath'] != ROOTDIR) ){
$valueroot = addslashes(ROOTDIR);
$sqldirectories = "UPDATE configdirectories SET ConfigDirectoriesPath='$valueroot' WHERE ConfigDirectoriesName = 'RootDirectories'";
mysql_query($sqldirectories, $MYSQL['LINK']);
}
------------------------------------------------
Mein versuch  nun mit PDO:
erst der Aufbau:
try {
 $DBO = new PDO('mysql:host=localhost;dbname=test_v8', $MYSQL['USER'], $MYSQL['PWD']);

} catch (PDOException $e) {
   print "Error!: " . $e->getMessage() . "<br/>";
   die();
}

Dann;
$dboResult = $DBO->query("SELECT ConfigDirectoriesPath  FROM configdirectories WHERE ConfigDirectoriesName = 'RootDirectories'");
$result = $dboResult->fetch();

if(($result['ConfigDirectoriesPath'] == "")OR ($result['ConfigDirectoriesPath'] != ROOTDIR) ){
 $valueroot = addslashes(ROOTDIR);
 $DBO->exec("UPDATE configdirectories SET ConfigDirectoriesPath='$valueroot' WHERE ConfigDirectoriesName = 'RootDirectories'");
}

Ist das soweit ok?
oder wäre hier schon ein Prepared Statement angebracht oder einfacherweise "quote()"?

Gibt es einen Ersatz für
"or mysql_error()" ??
oder macht PDO dies automatisch wenn ein Fehler auftritt?

vielen Dank nochmals
Gruss
hawk