getMessage() . "\n"; exit; } $targetId = 'e494c5750f95e1c26654'; echo "Target Passenger ID: " . $targetId . "\n\n"; // 1. Check passengers table try { $stmt = $con->prepare("SELECT * FROM passengers WHERE id = ?"); $stmt->execute([$targetId]); $p = $stmt->fetch(PDO::FETCH_ASSOC); if ($p) { echo "โœ… Passenger found in database:\n"; echo " - Phone (encrypted): " . $p['phone'] . "\n"; echo " - Phone (decrypted): " . $encryptionHelper->decryptData($p['phone']) . "\n"; echo " - First Name (decrypted): " . $encryptionHelper->decryptData($p['first_name']) . "\n"; echo " - Last Name (decrypted): " . $encryptionHelper->decryptData($p['last_name']) . "\n"; } else { echo "โŒ Passenger NOT found in database!\n"; } } catch (Exception $e) { echo "โŒ Error querying passengers table: " . $e->getMessage() . "\n"; } // 2. Check phone_verification_passenger table try { $decryptedPhone = '962798583052'; $encryptedPhone = $encryptionHelper->encryptData($decryptedPhone); echo "\nSearching phone_verification_passenger for: $decryptedPhone ($encryptedPhone)\n"; $stmt = $con->prepare("SELECT * FROM phone_verification_passenger WHERE phone_number = ?"); $stmt->execute([$encryptedPhone]); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!empty($rows)) { echo "โœ… Phone verification rows found (" . count($rows) . "):\n"; foreach ($rows as $row) { echo " - ID: " . $row['id'] . " | Verified: " . $row['verified'] . " | Expiration: " . $row['expiration_time'] . " | Created At: " . $row['created_at'] . "\n"; } } else { echo "โŒ No phone verification rows found for this phone number!\n"; // Let's get any recent rows $stmt2 = $con->prepare("SELECT * FROM phone_verification_passenger ORDER BY id DESC LIMIT 5"); $stmt2->execute(); $all = $stmt2->fetchAll(PDO::FETCH_ASSOC); echo " Recent rows in table:\n"; foreach ($all as $row) { $dec = $encryptionHelper->decryptData($row['phone_number']); echo " - ID: " . $row['id'] . " | Phone (decrypted): $dec | Verified: " . $row['verified'] . "\n"; } } } catch (Exception $e) { echo "โŒ Error querying phone_verification_passenger: " . $e->getMessage() . "\n"; } // 3. Test the exact SQL query from loginFromGooglePassenger.php echo "\n--- ๐Ÿงช Testing loginFromGooglePassenger query (WITH verified = 1 constraint) ---\n"; try { $sqlOld = "SELECT p.`id` FROM passengers p LEFT JOIN phone_verification_passenger ON phone_verification_passenger.phone_number = p.phone WHERE p.id = :id AND phone_verification_passenger.verified = '1'"; $stmt = $con->prepare($sqlOld); $stmt->execute([':id' => $targetId]); $count = $stmt->rowCount(); echo "Old query row count: $count\n"; } catch (Exception $e) { echo "Old query error: " . $e->getMessage() . "\n"; } echo "\n--- ๐Ÿงช Testing loginFromGooglePassenger query (WITHOUT verified = 1 constraint) ---\n"; try { $sqlNew = "SELECT p.`id` FROM passengers p LEFT JOIN phone_verification_passenger ON phone_verification_passenger.phone_number = p.phone WHERE p.id = :id"; $stmt = $con->prepare($sqlNew); $stmt->execute([':id' => $targetId]); $count = $stmt->rowCount(); echo "New query row count: $count\n"; } catch (Exception $e) { echo "New query error: " . $e->getMessage() . "\n"; }