2013-09-27 111 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' ])){'? –