sqlsrv_query和sqlsrv_num_rows不起作用,但没有错误显示

时间:2019-01-22 17:12:39

标签: php sql-server sqlsrv

我已使用以下脚本(db_connect.php)成功地使用php连接到sql server 2012:

    <?php   

    $serverName = "192.168.1.248\SQL2012"; //serverName\instanceName
    $connectionInfo = array( "Database"=>"TLSS", "UID"=>"sa", "PWD"=>"blablabla");


    $connect = sqlsrv_connect( $serverName, $connectionInfo);

    if( $connect) {
         echo "Database connection established.<br />";
    }else{
         echo "Connection could not be established.<br />";
         die( print_r( sqlsrv_errors(), true));
    }
?>

现在,我有一个登录脚本,该脚本在运行时不会引发任何错误,但是当我输入正确的登录凭据时,它不会重定向到正确的页面。登录脚本(login.php)如下:

 <?php 
require_once 'php_action/db_connect.php';

session_start();

if(isset($_SESSION['userId'])) {
    header('location: http://192.168.1.248:8080/booking/generate_tdn.php'); 
}

$errors = array();

if($_POST) {        

    $username = $_POST['username'];
    $password = $_POST['password'];

    if(empty($username) || empty($password)) {
        if($username == "") {
            $errors[] = "Username is required";
        } 

        if($password == "") {
            $errors[] = "Password is required";
        }
    } else {
        $sql = "SELECT * FROM tblLogin WHERE login = '$username'";
        $result = sqlsrv_query ($connect , $sql );
        //$result = $connect->query($sql); NOt applicable to SQL Server

        if(sqlsrv_num_rows ($result ) == 1) {

            $password = $password; 
            // exists
            $mainSql = "SELECT * FROM tblLogin WHERE login = '$username' AND passwd = '$password'";
            $mainResult = sqlsrv_query($connect, $mainSql);
            //$mainResult = $connect->query($mainSql); Not applicable to SQL server

            if (sqlsrv_num_rows ($mainResult ) == 1){
            //if($mainResult->num_rows == 1) {
                $value = sqlsrv_fetch_assoc($mainResult);
                $user_id = $value['login'];

                // set session
                $_SESSION['userId'] = $user_id;

                header('location: http://192.168.1.248:8080/booking/generate_tdn.php'); 
            } else{

                $errors[] = "Incorrect username/password combination";
            } // /else
        } else {        
            $errors[] = "Username does not exist";      
        } // /else
    } // /else not empty username // password

} // /if $_POST
?>

当我运行登录脚本时,它将引发消息“用户名不存在”,这意味着第26-30行上的代码未执行,但未引发任何错误。我想念什么?

0 个答案:

没有答案
相关问题