Anda sama sekali tidak memerlukan bind_result jelek dengan PDO.
Namun Anda juga tidak perlu menghitung. Tolong, hindari tindakan yang tidak perlu - tindakan tersebut hanya akan membuat kode Anda membengkak dan mengaburkan kode Anda tanpa alasan.
Pikirkan dulu, apa yang Anda butuhkan dari kueri? Apakah Anda benar-benar perlu menghitung? Tidak. Yang sebenarnya Anda butuhkan hanyalah sebuah tanda - apakah pengguna ada atau tidak. Jadi, buat kueri untuk mengembalikan tanda seperti itu.
$stmt = $this->pdo->prepare("SELECT 1 FROM users WHERE email=?");
$stmt->execute(array($_POST['email']));
$exists = $stmt->fetchColumn();
Hal yang sama berlaku untuk semua bagian kode lainnya
//escape the POST data for added protection
Anda sebenarnya tidak "melarikan diri" data apa pun di blok kode ini dan tidak menambahkan perlindungan. Namun saya sama sekali tidak melihat gunanya memasukkan NULL sebagai email. Apakah Anda yakin benar-benar menginginkannya?