【问题标题】:Fatal error: Call to a member function query() on string致命错误:调用字符串上的成员函数 query()
【发布时间】:2017-11-21 13:47:17
【问题描述】:

我遇到了一个致命错误,我试图在 stackoverflow 和其他论坛中找到解决方案,但似乎找不到。

错误看起来像:

致命错误:在字符串中调用成员函数 query() /home/......./check.php 在第 19 行

class M_login extends CI_Model{
    public function num_of_students($name,$adress){     
        $sql="select * from tbl_admin where name='$name' and address='$address'";       
        $query=$this->db->query($sql);      
        return $query->num_rows();
    }

【问题讨论】:

  • $this->db的内容是什么?
  • Little Bobbyyou may be at risk for SQL Injection Attacks。通过parameterized queries 了解Prepared Statements。我推荐PDO,我推荐wrote a class for,使其比使用非参数化查询更加简单、干净和安全。此外,This article 可以帮助您在 MySQLiPDO 之间进行选择
  • 永远不要存储纯文本密码!请使用 PHP 的 built-in functionspassword_hash()password_verify())来处理密码安全问题。如果您使用低于 5.5 的 PHP 版本,您可以使用 password_hash() compatibility pack没有必要 escape passwords 或在散列之前对其使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。
  • @GrumpyCrouton 也许他在调用函数之前散列密码......
  • 伙计们,感谢您的评论。但是密码字段是虚拟字段。我知道在密码的情况下我应该怎么做。我的问题与安全无关。

标签: php mysql database codeigniter activerecord


【解决方案1】:
 public function num_of_students($name,$adress){     
    $sql="select * from tbl_admin where name='$name' and address='$address'";       
    $query=$this->db->query($sql)->get();      
    return $query->num_rows();
}

我希望这可以帮助你...谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 2017-02-27
    • 2015-08-01
    相关资源
    最近更新 更多