2015-07-21 96 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

相关问题