2014-05-04 63 views
-2

有人可以幫我找到這個錯誤的解決方案:mysqli_num_rows()預計參數1被mysqli_result

$user_name = "root"; 
$pass_word = "7172648"; 
$database = "movies"; 
$server = "localhost"; 

$db_handle = @mysqli_connect($server, $user_name, $pass_word); 
$db_found = mysqli_select_db($db_handle, $database); 

if ($db_found) { 



    $SQL = "SELECT * FROM user WHERE Username = $name AND Password = $pass"; 
    $result = mysqli_query($db_handle,$SQL); 
    $num_rows = mysqli_num_rows($result); 



    //==================================================== 
    // CHECK TO SEE IF THE $result VARIABLE IS TRUE 
    //==================================================== 

    if ($result) { 
     if ($num_rows > 0) { 
      session_start(); 
      $_SESSION['login'] = "$name"; 
      header ("Location: index.php"); 
     } 
     else { 
      session_start(); 
      $_SESSION['login'] = ""; 
      header ("Location: login.php"); 
     } 
    } 
    else { 
     $errorMessage = "Error logging on"; 
    } 

    mysqli_close($db_handle); 

} 
else { 
    $errorMessage = "Error logging on"; 
} 

我不明白這裏的問題是,如果有人能夠幫助這將是如果你不明白,請嘗試提問,如果可能,我會更清楚地解釋它。

+0

'其中username = ' 「$名字。」' 和密碼=「」。$通過。 「」「' –

+0

是的,我有一個問題,你有沒有研究問這個嗎?從我所看到的前你的'$ name'和'$ pass'沒有單引號,這就是爲什麼你的查詢失敗了,你可以用一個簡單的'echo mysqli_error($ db_handle);'來找到它。 –

+0

你爲什麼不自己找到解決方案?你是否嘗試谷歌? –

回答

-2

請在代碼裏面找到代碼。

$SQL = sprintf("SELECT * FROM user WHERE Username='%s' AND Password='%s'", 
     mysqli_real_escape_string ($name), 
     mysqli_real_escape_string ($pass)); 
//Please note! NEVER insert text received from client into an 
//SQL statement without screening it through mysql_real_escape_string 

$result = mysqli_query($db_handle,$SQL); 

//$num_rows = mysqli_num_rows($result); // NOT HERE!!! 
             // Because $result might be undefined 
             // if query is not executed 
//==================================================== 
// CHECK TO SEE IF THE $result VARIABLE IS TRUE 
//==================================================== 
if ($result) { 
    $num_rows = mysqli_num_rows($result); // HERE! If result definitely present 
    if ($num_rows > 0) { 
     session_start(); 
     $_SESSION['login'] = "$name"; 
     header ("Location: index.php"); 
    } 
    else { 
     session_start(); 
     $_SESSION['login'] = ""; 
     header ("Location: login.php"); 
    } 
} 
else { 
    $errorMessage = "Error logging on"; 
} 
+0

什麼是你正在談論的這個「篩選」?如果我必須把一個數字,而不是字符串,放入查詢 - 你的篩查會有幫助嗎? –

+0

此外'screenin g'不會將'mysql_ *'與'mysqli_ *'混合工作# –

+0

@Hanky웃Panky,它會的,但你是對的。混合id mysql_&mysqli_是我的mitake。固定。 –

相關問題