在if结构中使用mysqli_query

时间:2015-11-28 19:49:09

标签: php mysql

我有一个基本的问题,刚刚开始深入研究PHP和Mysql。

这个构造中似乎有错误,任何人都可以帮助我吗?

谢谢! ķ。

if ($password = mysqli_query ("SELECT password FROM users WHERE firstname = '$username'")) {

    echo "password success!";

     }
         else {
          echo "Password fail!";
}

3 个答案:

答案 0 :(得分:1)

如果您有疑问,请参阅手册。

http://php.net/manual/en/mysqli.query.php

现在您使用的是面向对象的样式还是程序?你错过了任何一种方法中的链接。

一旦解决了,你就会遇到函数没有返回字符串的问题。

  

失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。

因此,您将在错误或mysqli_result对象上获得错误。要解析对象,请使用fetch; http://php.net/manual/en/mysqli-stmt.fetch.php

但首先你应该使用预备语句,这将大大降低你注入SQL的机会; http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

之后你应该用你的查询传递密码,因为你可以让mysql评估密码和用户名是否匹配然后如果你得到返回的结果,你知道数据是有效的。

附加说明:如果是,则不应以纯文本格式存储密码。

=也分配了一个值。要比较两个值,您需要使用=====。如需更长时间的撰写,请参阅http://php.net/manual/en/language.operators.comparison.php

答案 1 :(得分:0)

假设您的连接详细信息存储在变量$ db中 首先,您需要在过程模式下为mysqli_query提供数据库连接资源。

$password = mysqli_query($db, "SELECT password FROM users WHERE firstname = '$username'");

答案 2 :(得分:0)

在mysqli中,您必须将 db_connection 存储到变量中,并且必须传入每个查询。以下是您必须遵循的完整路径:

  1. 使用host_name,user_name,password,db_name创建与数据库的连接。并将连接存储到变量中。
  2. 您可以通过传递连接变量来运行任何查询。
  3. 下面的代码是:

    <?php
    
    $con = mysqli_connect("localhost","my_user","my_password","my_db");
    
    // Check connection
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    if ($password = mysqli_query ($con, "SELECT password FROM users WHERE firstname = '$username'")) {
        echo "password success!";
    }
    else {
        echo "Password fail!";
    }
    ?>