php
  • mysql
  • database
  • mysqli
  • 2017-01-07 37 views 1 likes 
    1

    這是我的代碼我不能執行我的代碼,試圖讓非對象的財產

    if(isset($_POST['login'])){ 
    $username = antiinjeksi($_POST['username']); 
    $password = antiinjeksi(md5($_POST['password'])); 
    
    $cekuser = $mysqli->query("SELECT * FROM tbl_user 
    username='$username' AND password='$password'"); 
    
    $jmluser = $cekuser-> num_rows; 
    $data = $cekuser-> fetch_array(); 
    
    if ($jmluser> 0) { 
        $_SESSION['username']  = $data['username']; 
        $_SESSION['namalengkap'] = $data['nama_lengkap']; 
        $_SESSION['password']  = $data['password']; 
        $_SESSION['iduser']   = $data['id_user']; 
        $_SESSION['leveluser']  = $data['level']; 
    
        $_SESSION['timeout'] = time()+1000; 
        $_SESSION['login'] = 1; 
        header('location: index.php'); 
    }else{ 
        echo'<div class="alert alert-danger login-alert" 
        role="alert"><b>Sorry!</b> Username atau Password Salah.</div>'; 
    

    問題是

    Notice: Trying to get property of non-object in F:\xampp\htdocs\cmsku\admin\login.php on line 36

    Fatal error: Uncaught Error: Call to a member function mysqli_fetch_array() on boolean in F:\xampp\htdocs\cmsku\admin\login.php:37 Stack trace: #0 {main} thrown in F:\xampp\htdocs\cmsku\admin\login.php on line 37

    我解決不了 錯誤代碼是

    $jmluser = $cekuser-> num_rows; 
    $data = $cekuser-> fetch_array(); 
    

    回答

    2

    您的查詢是incorect。你必須有一個WHERE子句

    $mysqli->query("SELECT * FROM tbl_user WHERE username='$username' AND password='$password'"); 
    
    +0

    你說得對,但要添加一點解釋,$ cekuser將返回false(布爾值)與bima的查詢。這就是爲什麼$ cekuser-> fetch_array()拋出這個錯誤,這個函數正在等待一個對象。 – Benoti

    相關問題