#php #sql_server #pdo #авторизация
Столкнулся со следующей проблемой: не проходит запрос БД. Данные получаю с форм посредством AJAX (запаковываю в JSON и отправляю на сервер). Далее, используя PDO в PHP подключаюсь к MSSQL, где находится БД. На сервер данные приходят, а к БД запрос не выполняется. setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { print("Couldn't connect to the database".$e->getMessage()); } $user = json_decode($_REQUEST['user']); $user->password = hash('md5', $user->password); $query = $db->exec("SELECT * FROM dbo.Users WHERE Login = '".$user->login."' AND Password = '".$user->password."'") or die("Query error"); var_dump($query); if ($query==1) { $cookie_name = $user->login; $cookie_value = $user->password; setcookie($cookie_name, $cookie_value, time() + 3600); }?> Подскажите, пожалуйста, что делать. Пытался использовать одинарные кавычки для переменных и функцию query(), которая возвращает строку запроса.
Ответы
Ответ 1
Проблему решил использованием функции prepare() $query = $db->prepare('SELECT * FROM dbo.Users WHERE Login = ? AND Password = ? ') or die("Query error"); $query->execute(array($user->login, $user->password)); $res = $query->fetchAll(); if ($user->login == $res[0][1] && $user->password == $res[0][3]) { $cookie_name = $user->login; $cookie_value = $user->password; setcookie($cookie_name, $cookie_value, time() + 3600); } var_dump($res);
Комментариев нет:
Отправить комментарий