Lieber j4nk3y,
Aber ich habe erst mysql gelernt und habe damit angefangen, dann hat Jemand gesagt warum machst du das nicht mit mysqli? Daraufhin hab ich mich in mysqli eingelesen und alles was ich hatte umgeschrieben.
ich verstehe, dass das für Dich eine wesentliche Menge an Einarbeitung und Lernstoff war - nur reicht das leider noch nicht.
Verzeih mir aber ich habe keine Lust wieder von vorne Anzufangen. Den das mache ich ständig egal mit was.
Das nennt man Lernen. Früher war auch gängige Meinung die Welt sei eine Scheibe. Da hatten es die Navi-Geräte noch relativ leicht... ;-)
Ne, im Ernst. Du macht da sehr gefährliche Sachen. Das sollte man überhaupt nicht erst anfangen. Egal ob mysqli oder PDO, Du darfst keine SQL-Injection-Lücken aufreissen. Es lohnt sich also, die Handhabung mit SQL-Code und Parametern irgendwie zu abstrahieren. Dann hast Du zum einen weniger Geschäft beim Schreiben Deines Codes (immer von Vorteil) und zum anderen mehr Sicherheit.
Wäre das ein Deal?
Für PDO könnte ich Dir eine klitzekleine Klasse anbieten, die Dir im Hintergrund etwas vereinfacht, sodass Du nur noch folgendes schreiben brauchst (falls Du ansonsten noch nicht objektorientiert PHP schreibst und noch weiter abstrahieren kannst):
// Hole aus DB
$query = array(
'select' => 'SELECT `login`, `pass` FROM `users` WHERE `login`=:login',
'params' => array(
':login' => $_POST['login']
)
);
$array = $db->get($query['select'], $query['params']);
// Schreibe in DB
$query = array(
'update' => 'UPDATE `users` SET `pass`=:pass WHERE `login`=:login',
'params' => array(
':login' => $_POST['login'],
':pass' => password_hash($_POST['pass'], PASSWORD_DEFAULT)
)
);
$db->send($query['update'], $query['params']);
Mir hilft das beim Schreiben, weil ich sehe, ob ich etwas von der DB haben will (und auf welche Weise), oder ob ich etwas in die DB füttere (und auf welche Weise).
Na, wäre das eine vernachlässigbare Menge des Umlernens? In Deine Scripte müsstest Du nur ein PHP-Script einbinden, welches Dir diese $db->send()
oder $db->get()
zur Verfügung stellt. Das könntest Du haben. Wir könnten auch die Klasse so anpassen, dass Du nur noch das Array $query
an $db->send()
oder $db->get()
übermitteln bräuchtest.
Liebe Grüße,
Felix Riesterer.