У меня небольшая проблема с моей php-страницей, которую я просто не понимаю. Я новичок в этом, и я не очень понимаю мой запрос. Когда я пытаюсь выполнить свою программу, ошибка появляется, как этотsqlsrv_has_rows() ERROR PHP с MSSQL
Внимание: sqlsrv_has_rows() ожидает параметр 1, чтобы быть ресурсом, логический данного
Это мой код:
<?php
session_start();
try{
include 'connection.php';
$username = $_POST['user'];
$password = $_POST['pass'];
//check if login form is filled
if(empty($_POST['user']) || empty($_POST['pass'])){
echo '<script type="text/javascript">alert("Connection established."); </script>';
}
//search for user and password in the database
$query = "SELECT * FROM [Emkaandb].[dbo].[tbl_clientslogin] WHERE email='{$username}' AND .password='{$password}' AND active='1'";
$result = sqlsrv_query($conn, $query);
if($result == true){
die(print_r(sqlsrv_errors(),true));
}
if(sqlsrv_has_rows($result) !=1){
echo '<script type="text/javascript">alert("Invalid email or password."); </script>';
}else{
while($row = sqlsrv_fetch_array($result)){
$_SESSION['name'] = $row['name'];
}
header("location: Profile.php");
}
}catch (PDOException $e)
{
echo "Error!: " . $e->getMessage() . "
";
die();
}
?>
на всякий случай вы не знали. Функции sqlsrv не имеют ничего общего с функциями PDO. и, следовательно, очень мало пользы в улавливании PDOExceptions в этом коде. –
На самом деле вам нужно явно указать сообщения об ошибках: [sqlsrv_errors()] (http://php.net/sqlsrv_errors). Как только вы это сделаете, вы увидите, что ваш SQL недействителен для начала. –
BTW, кажется, ваш код позволяет использовать универсальный логин с помощью волшебного пароля ''ИЛИ 1 = 1 -' –