2013-09-27 114 views
0

新手在這裏。 我在使用mysqli的php中遇到麻煩。 我已經設置了限制爲1,但是當我試圖做一些測試,如在mysqli_stmt_num_rows($ stmt)放置回聲;看看它是否真的提取了一些東西......但結果是0。 我真的不知道該做什麼了。 希望有人能幫助我。Mysqli結果問題

這裏是我的登錄代碼:

<?php 
$con = mysqli_connect("localhost", "root", "", "pamsignup") 
or die('error in connection'.mysqli_connect_error()); 

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

    $stmt = mysqli_prepare($con, "SELECT username, password FROM registries    
     WHERE username=? AND password=? LIMIT 1"); 

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

    mysqli_stmt_bind_param($stmt, 'ss', $username, $password); 
    mysqli_stmt_execute($stmt); 
    mysqli_stmt_bind_result($stmt, $username, $password); 
    mysqli_stmt_fetch($stmt); 
    mysqli_stmt_store_result($stmt); 
    echo mysqli_stmt_num_rows($stmt); 
    if(mysqli_stmt_num_rows($stmt) == 1) 
    { 
     header('Location: PAM-home.php'); 
    } 
    else 
    { 
     //header('Location: PAM-login.php'); 
     echo 'Wrong Password'; 
    } 
     mysqli_stmt_close($stmt); 
    } 

?> 
+0

您的問題標題有誤導性。這是一個結果問題,而不是登錄問題。 –

+0

如果返回0行,則查詢不會產生任何結果:該帳戶不存在,或者用戶名和/或密碼不正確。 –

+0

@MarcB我甚至試圖用一個字母的用戶名和密碼,但它仍然返回0行。 – user12345654

回答

0
<?php 
error_reporting(E_ALL); 
if(isset($_POST['username'])) 
{ 
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 
    $con = mysqli_connect("localhost", "root", "", "pamsignup") 

    $sql = "SELECT 1 FROM registries WHERE username=? AND password=?"; 
    $stmt = mysqli_prepare($con, $sql); 

    mysqli_stmt_bind_param($stmt, 'ss', $_POST['username'], $_POST['password']); 
    mysqli_stmt_execute($stmt); 
    mysqli_stmt_store_result($stmt); 
    if(mysqli_stmt_num_rows($stmt)) 
    { 
     header('Location: PAM-home.php'); 
    } 
    else 
    { 
     //header('Location: PAM-login.php'); 
     echo 'Wrong Password'; 
    } 
} 
+0

對OP的解釋證明是有益的,至於你在添加方面做了什麼/刪除/修改代碼 –

+0

@ Fred-ii-我試圖回顯mysqli_stmt_num_rows($ stmt)部分,它返回一個0值。爲什麼?:( – user12345654

+0

@RedSparkle這不是我的代碼/答案。那麼沒有任何解釋,超出了我的想法,我認爲他只是添加了錯誤報告代碼以及你對'SELECT用戶名,密碼FROM註冊表'有什麼作用。你的表單與'if(isset($ _ POST ['login' ])){'? –