2015-07-21 93 views
-3

中給出的布爾值我知道有關於它的線程,但這些對我沒有幫助。無論如何,我是PHP新手,當我陷入困境時,我正在創建登錄系統。我不明白爲什麼它給我這個錯誤:警告:mysqli_fetch_row()預計參數1被mysqli_result,在警告:mysqli_fetch_row()期望參數1是mysqli_result,在

代碼定的boolean是在這裏:

<?php 
session_start(); 

if(isset($_POST['username'])){ 

    include_once("dbconnect.php"); 

    $usname = strip_tags($_POST["username"]); 
    $paswd = strip_tags($_POST["password"]); 

    $usname = mysqli_real_escape_string($dbCon, $usname); 
    $paswd = mysqli_real_escape_string($dbCon, $paswd); 

    $paswd = md5($paswd); 

    $sql = "SELECT id, fooruminimi, password FROM liikmed WHERE username = '$usname' AND aktiveeritud = '1' LIMIT 1"; 
    $query = mysqli_query($dbCon, $sql); 
    $row = mysqli_fetch_row($query); 
    $uid = $row[0]; 
    $dbUsname = $row[1]; 
    $dbPassword = $row[2]; 

    if($usname == $dbUsname && $paswd == $dbPassword){ 
     //Sessioni avamine 
     $_SESSION['username'] = $usname; 
     $_SESSION['id'] = $uid; 
     //Suunamine 
     header("Location: user.php");  
    } 
    else{ 
     echo "<h2> Vale kasutajanimi või parool!</h2>"; 
    } 
} 
?> 

回答

0

這意味着你的查詢失敗並返回false。

重新檢查一下,確保它正常工作。

mysqli_query($dbcon, $sql) or die(mysqli_error($dbcon)); 
0

檢查您的憑據和您的選擇語句的錯誤,您的源代碼看起來不錯。

問題是您的mysql_query在下面的部分返回false意味着您的查詢執行失敗。

$sql = "SELECT id, fooruminimi, password FROM liikmed WHERE username = '$usname' AND aktiveeritud = '1' LIMIT 1"; 
$query = mysqli_query($dbCon, $sql); 

所以$query充滿布爾false,而不是這是需要下一行的mysql_result對象

$row = mysqli_fetch_row($query); 

你應該這樣行前插入一個if子句來檢查此類似:

if($query === false) { 
    echo "error while executing mysql: " . mysqli_error($dbcon); 
} else { 
    // move on with your normal skript 
} 
1

這會發生2個主要原因

  1. mysqli_connect()失敗連接
  2. mysqli_query()任何回報

檢查代碼中

$dbCon = mysqli_connect("localhost","my_user","my_password","my_db"); 

,並檢查$sql返回數據

$sql = "SELECT id, fooruminimi, password FROM liikmed WHERE username = '$usname' AND aktiveeritud = '1' LIMIT 1"; 
+0

如果我理解本手冊正確' mysqli_query'只有retu在失敗時爲'false',沒有任何返回時爲空結果集:http://php.net/manual/en/mysqli.query.php – bish

相關問題