【问题标题】:sql_num_rows() not woking giving error in wampserver 2.2mysqli_num_rows() 在 wampserver 2.2 中不工作给出错误
【发布时间】:2014-10-26 17:37:23
【问题描述】:

给出错误:sql_num_rows()。当我单击此链接时,它将向我发送 php 网站。 我也尝试过 mysql_fetch_array() 两者都不适合我。我必须设计登录页面,任何人都可以帮助我在 wampserver 2.2 中使用工作代码。

login.php

<?php
    require ('sql_connect.php');
    $sql= mysql_query("SELECT * FROM `login_users` WHERE `username` = '$username' AND      `password` = '$password'");
    if(mysql_num_rows($sql) > 0)
    {
        echo ("<SCRIPT LANGUAGE='JavaScript'>
            window.alert('Login Succesfully!.')
            window.location.href='htmllogin.html'
            </SCRIPT>");
        exit();
    }
    else
    {
        echo ("<SCRIPT LANGUAGE='JavaScript'>
            window.alert('Wrong username password combination.Please re-enter.')
            window.location.href='htmllogin.html'
            </SCRIPT>");
        exit();
    }
}
else
{
}
?>

htmllogin.html

<html>
<head>
<body bgcolor="">
    <font>
        <center>
            <h1>Login</h1>
        </center>
    </font>
    <form action="login.php" method="POST">
        Username:<input type="text" name="uname">
        Password:<input type="password" name="pass"><br>
        <input type="submit" value="login" name="submit">
    </form>
</body>
</head>
</html>

------------谢谢 http://i.stack.imgur.com/u33Fx.png

【问题讨论】:

  • 你是如何初始化变量$username$password的?
  • 为什么你只在 SQL 查询中进行测试 SELECT * FROM login_users WHERE username = $username AND (ROW_NUMBER() OVER (ORDER BY column)) > 0
  • $username=mysql_escape_string($_POST['uname']); $password=mysql_escape_string($_POST['pass']);
  • 看起来你的 if/else 块没有被一致地打开和关闭,这可能会导致问题,除非你没有显示更多代码。

标签: php sql wampserver


【解决方案1】:

所以首先密码在表结构中是不知道的。因此,请检查该列是否具有相同的标记。 其次,sql查询没有给出返回值的结果:

mysql_query 将是假的。这就是第二个例外的解释。

所以更正查询,列密码,(如果您发送列我可以为您查询)。 ——马克·哈特曼

【讨论】:

    【解决方案2】:

    请试试这个

    $sql= mysql_query("SELECT * FROM login_users WHERE username = '".$username."' AND password = '".$password."'");

    或者打印你的查询然后直接在mysql中运行并检查你的查询是对还是错

    【讨论】:

    • 先生,请参阅此链接上的错误i.stack.imgur.com/u33Fx.png
    • 你必须这样做 echo "SELECT * FROM login_users WHERE username = '$username' AND password = '$password'";然后检查 $password 的值;
    【解决方案3】:
    <?php
        require ('sql_connect.php');
        $username = $_POST['uname'];
        $password = $_POST['pass'];
        $sql= mysql_query("SELECT * FROM login_users WHERE username = '$username' AND password = '$password'");
        if(mysql_num_rows($sql) > 0)
        {
    echo ("<SCRIPT LANGUAGE='JavaScript'>
            window.alert('Login Succesfully!.')
            window.location.href='htmllogin.html'
            </SCRIPT>");
        exit();
        }
        else{
         echo ("<SCRIPT LANGUAGE='JavaScript'>
            window.alert('Wrong username password combination.Please re-enter.')
            window.location.href='htmllogin.html'
            </SCRIPT>");
        exit();
        }
        }
        else{
        }
        ?>
    

    【讨论】:

    • 我也用过这个。
    • 将 'username' = '$username' 更改为 username = '$username'
    • 它也给出了错误,例如:mysql_num_rows() 带有链接它是发送我到 php 网站
    【解决方案4】:

    首先,我认为您的 SQL 语句存在问题:

     "SELECT * FROM `login_users` WHERE `username` = '$username' AND      `password` = '$password'");
    

    这里的`是错误的。您应该删除它,因为它不被列使用。

    而且 apache 可能需要知道如何使用 php 库。

    LoadModule php5_module /usr/lib/apache2-prefork/libphp5.so
    

    这是您必须放入 apache conf 文件中的库 sourcetag。你也可以在你的 wamp 中测试 PHP:

     <?php
        phpinfo();
        phpversion();
      ?> 
    

    如果 PHP 处于活动状态,这将为您提供版本,如果没有,则将 PHP 作为文本文件。

    所以我认为这应该会有所帮助。 马克

    【讨论】:

    • 先生,它提供了 php 版本 5.3.5(2)mysql5.5.8(3)apache2.2.17。它在 php 5.3.5.so 中不可移植,我可以使用哪种方法。
    • 嗨“user3771136”,我认为 mysql_num_rows 应该在 php 5.3.5 中工作,但如果不是,你可以使用: mysqli_num_rows() 这是应该使用的版本,因为不推荐使用另一个版本,并且不应该在应用程序中更多使用。马克
    • 先生,请参阅此链接上的错误i.stack.imgur.com/u33Fx.png
    • 我已经尝试过 myqli_num_rows() 它也不起作用。
    • 所以首先从表结构中不知道密码。因此,请检查该列是否具有相同的标记。其次,sql查询没有给出返回值的结果:mysql_query将为false。这就是第二个错误的解释:所以更正查询,列密码,(如果您发送列我可以为您查询)。
    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2014-09-09
    • 2020-10-26
    • 2016-05-10
    相关资源
    最近更新 更多