Столкнулся со следующей проблемой: не проходит запрос БД. Данные получаю с форм посредством AJAX (запаковываю в JSON и отправляю на сервер). Далее, используя PDO в PHP подключаюсь к MSSQL, где находится БД. На сервер данные приходят, а к БД запрос не выполняется.
<?php
try {
$db = new PDO("sqlsrv:Server=WIN-H0CPAVNR2UI\SQLEXPRESS;Database=UsersForProject");
$db->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(), которая возвращает строку запроса.
Проблему решил использованием функции 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);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники