Мне уже несколько раз советовали начать менять код на PDO, и я, наконец, обзавелся этим. Моя проблема в том, что у меня возникли невероятные трудности с преобразованием моего существующего сценария входа. За последние несколько строк кода ниже (после строки $result = $query->fetchAll();
) Я не смог найти каких-либо ресурсов в Интернете, которые могли бы помочь мне повторно написать это:Преобразование MySQL в PDO
$username = $_POST['username'];
$password = $_POST['password'];
$db=getConnection();
$username = mysql_real_escape_string($username);
$query = $db->prepare("SELECT password, salt, 'employer' as user_type
FROM JB_Employer
WHERE Username = '$username'
UNION
SELECT password, salt, 'jobseeker' as user_type
FROM JB_Jobseeker
WHERE User_Name = '$username'");
$result = $query->fetchAll();
$qData = mysql_fetch_array($result, MYSQL_ASSOC);
$hash = hash('sha256', $qData['salt'] . hash('sha256', $password));
if ($result -> rowcount() <1 ;) { print “Fail, No such user”;}
if ($hash != $qData['password']) { header('Location: register.php?loginStatus=fail'); exit;}
else {$_SESSION['user'] = $username;
$_SESSION['permission'] = $qData['user_type'];}
Может кто-нибудь посоветовать, как я мог бы идти о это?
Почему, черт возьми, вы используете эту цитату? '' "' – dynamic
Сколько записей вы ожидаете от набора результатов? То есть может ли быть только 0 или 1 запись для $ username во всех трех таблицах? Почему для одной и той же цели существуют три разные, но структурно идентичные таблицы? – VolkerK
Извините, на самом деле есть только две таблицы, это была моя ошибка, я обновил ее сейчас. Запрос возвращает одного пользователя, который будет находиться в таблице JB_Jobseeker или JB_Employer. – David