Conversione da Mysqli a PDO

Recentemente ho iniziato a utilizzare PDO alcuni giorni fa e sto cambiando tutto il mio codice mysqli, ma mi sembra di aver colpito un muro di mattoni. Ora questo codice funzionava magnificamente quando stavo usando mysqli, ma ora non riesco a printingre il risultato. Questo codice prende fondamentalmente il valore di input della password e quello della password hash nel database, li confronta e se entrambi sono uguali, l'utente verrà loggato. Il mio problema è che non riesco a trovare un modo per get la password dal mio database. Qualsiasi aiuto sarebbe molto apprezzato. Grazie.

<?php session_start(); $user = "root"; $pass = ""; $mcon = new PDO('mysql:host=localhost;dbname=rabbit_users', $user, $pass); try { $mcon = new PDO('mysql:host=localhost;dbname=rabbit_users', $user, $pass); $mcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); //prepare statement $password = $_POST['password']; $stmt = $mcon->prepare("SELECT `password` FROM members WHERE password=:password"); $stmt->bindParam(":password", $_POST['password']); $stmt->execute(); //get_result $data_arrays = $stmt->fetchAll(); $stmt->fetch(PDO::FETCH_ASSOC); //echo passwords print 'Password from form: ' . $password . '<br />'; print 'Password from DB: ' . $data_arrays['password'] . '<br />'; //verify password if (password_verify($password, $data_arrays['password'])) { print 'success'; exit(); }else{ print 'Try again m9'; exit(); } 

fetchAll restituisce un arrays contenente tutte le righe del set di risultati. Quindi puoi accedere alla password con $data_arrays[0]['password'] se lo hai usato. Si consiglia di utilizzare il recupero invece.

 $data_arrays = $stmt->fetch(PDO::FETCH_ASSOC);