代码之家  ›  专栏  ›  技术社区  ›  alemjerus

重新分配时SQL结果不起作用

  •  0
  • alemjerus  · 技术社区  · 14 年前

    代码:

      $msr = db_query("SELECT * FROM users WHERE username='$username'");
      if (db_num_rows($msr) == 0)
          return null;
    

    什么时候?

    function db_query($query) { return mysql_query($query) or die(mysql_error() . " when querying: $query"); }
    function db_num_rows($queres) { return mysql_num_rows($queres) or die(mysql_error()); }
    

    显示错误: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

    当我用“mysql”替换“db_uu”时,一切都很好地工作。 有办法解决这个问题吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community Egal    7 年前

    请参阅“ Creating a php function to return mysql results “就这样吧。

    function db_query($query) { 
      $result = mysql_query($query) or die(mysql_error()." when querying: $query"); 
      return $result;
    }
    
    // etc
    

    除此之外,你应该 绝对不是

    $msr = db_query("SELECT * FROM users WHERE username='$username'");
    

    出于安全考虑。这对于SQL注入攻击是非常开放的,请参见 XKCD 327 . 请改用参数化的SQL语句。