После многих рекомендаций от других я решил сделать переход с mysql_ на PDO. Я начал смотреть на PDO буквально около 15 минут назад, и я застрял, пытаясь преобразовать эту строку кода в формат PDO.Переключение с mysql_ на PDO
function verify_user($username, $recover_password) {
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password_recovery` = '$recover_password'"), 0) == 1) ? true : false;
}
Я посмотрел на пару учебников и, насколько я могу работать, я могу сделать фактический запрос с этим кодом:
$verify_user = "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password_recovery` = '$recover_password'";
$result = $con->prepare($verify_user);
$result->execute();
Проблема, которую я имею является второй частью строка кода - mysql_result. Теперь, когда запрос запущен, я не знаю, как вернуть true или false с помощью PDO. Буду признателен за любую помощь. Благодаря!
Обновлен:
$result = $con->prepare("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = :username AND `password_recovery` = :recover_password");
$result->bindParam(':username', $username, PDO::PARAM_STR);
$result->bindParam(':password_recovery', $recover_password, PDO::PARAM_STR);
$result->execute();
От чтения этой страницы вы при условии, что будет:
$result = $con->prepare("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = :username AND `password_recovery` = :recover_password");
$result->bindParam(':username', $username, PDO::PARAM_STR);
$result->bindParam(':password_recovery', $recover_password, PDO::PARAM_STR);
$result->execute();
return ($con->fetch($result) == 1) ? true : false;
Я, вероятно, мили, но я ценю помощь, которую вы мне дали :) Я сделаю еще пару поисков.
Вы используете PDO неправильно. '$ username' и' $ recover_password' должны быть заполнителями, ** NOT ** напрямую вставляется в строку запроса. Что касается получения результатов, вот подсказка: http://php.net/manual/en/pdostatement.fetch.php –
Я думаю, что это должно быть правильно? (отредактированный основной пост) – user2547576
лучше с параметрами. неправильно с извлечением. вы выбираете счет, поэтому ВСЕГДА верните 1 строку. вам нужно получить данные этой строки, а затем проверить результаты подсчета. –