2016-04-21 2 views
0

У меня небольшая проблема с моей 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(); 
    } 

?> 
+2

на всякий случай вы не знали. Функции sqlsrv не имеют ничего общего с функциями PDO. и, следовательно, очень мало пользы в улавливании PDOExceptions в этом коде. –

+0

На самом деле вам нужно явно указать сообщения об ошибках: [sqlsrv_errors()] (http://php.net/sqlsrv_errors). Как только вы это сделаете, вы увидите, что ваш SQL недействителен для начала. –

+0

BTW, кажется, ваш код позволяет использовать универсальный логин с помощью волшебного пароля ''ИЛИ 1 = 1 -' –

ответ

2

$ result return resource set id?

+0

. Я могу видеть if ($ result == true) { die (print_r (sqlsrv_errors(), true)); } thats die()? потому что $ result всегда истинно ... –