@krekerov
Fullstack ninja

Как использовать PDO fetch result?

Код ниже пытается залогинить пользователя (проверяет в базе, если есть выводит реквизиты).
Напрямую с базой хочу отучиться работать и использовать PDO.
Не ясно как исключить из результата поле пароль. Иначе сейчас он его выводит.

Далее в скприпте ставится кука с этими реквизитами. как сделать правильно?
$email = $_POST['email'];
        $password = $_POST['password'];

        $sql = "SELECT email, password FROM users WHERE email='$email' and password='$password'";
    
        try {
            $db = getConnection();
            $stmt = $db->query($sql);
    
            $account = $stmt->fetch(PDO::FETCH_ASSOC);
            //echo $companies['c'];
            $db = null;
            echo fix_json(json_encode($account));
        } catch(PDOException $e) {
            echo '{"error":{"text":'. $e->getMessage() .'}}';
        }
  • Вопрос задан
  • 2671 просмотр
Решения вопроса 1
egor_nullptr
@egor_nullptr
...
$sql = "SELECT email FROM users WHERE email = ? AND password = ?";
try {
    $db = getConnection();
    $stmt = $db->prepare($sql);
    $stmt->exec([$email, $password]);
    $account = $stmt->fetch(PDO::FETCH_ASSOC);
...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Graph
Ну или

unset($account['password']);
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
PDO - это точно такая же работа "напрямую с базой".
А вот от чего действительно надо отучаться - это от привычки писать на каждый чих горы бессмысленного, ненужного и вредного кода.
$sql = "SELECT email, password FROM users WHERE email=? and pssword=?";
$stmt = getConnection()->prepare($sql);
$stmt->execute(array($_POST['email'],$_POST['password']));
$email = $stmt->fetchColumn();

Это весь код, который нужен. Все остальное лишнее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
03 мая 2024, в 00:45
1000 руб./за проект
02 мая 2024, в 23:56
2000 руб./за проект
02 мая 2024, в 23:29
1500 руб./в час