当前位置: 首页 > 知识库问答 >
问题:

致命错误:调用布尔值上的成员函数count()

戚育
2023-03-14
class db {

private $_pdo ,
        $_query,
        $_error = false,
        $_results ,
        $_count = 0 ; 

private  function __construct () {
    try {

        $host = config::get('mysql/host');
        $database = config::get('mysql/db');
        $username = config::get('mysql/user');
        $pasword = config::get('mysql/password');

        $this->_pdo = new PDO("mysql:host=$host;dbname=$database", $username, $pasword);

        }  catch (PDOException $e) {
            die($e->getMessage()) ;
        }

} 

public static function getInstance() {
    if(!isset(self::$_instance)) {
        self::$_instance = new db () ;
    }

    return self::$_instance ;
} 


public function query($sql,$params=array()) {

    $this->_error = false ;
    if($this->_query = $this->_pdo->prepare($sql)) {
            $x = 1 ;
        if(count($params)) {

            foreach($params as $param) {
            $this->_query->bindValue($x,$param) ;
            $x++ ;
        }
      } 

      if($this->_query->execute()) {

        $this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ) ;
        $this->_count = $this->_query->rowCount()  ;

      } else {
                 $this->_error = true ;
      }
    }

    return $this ;
}  

public function action($action , $table ,$where = array()) {
      if(count($where) === 3) {

    $operators = array('=','>','<','>=','<=') ;

    $field = $where[0] ;
    $operator = $where[1] ;
    $value = $where[2] ;

     if(in_array($operator, $operators)) {

        $sql = "{$action} FROM {$table} WHERE {field} {operator} ?" ;
        if(!$this->query($sql,array($value))->error()) {
            return $this ;
           }
         } 
       } 

      return false ;
} 

public function get($table , $where) { 
      return $this->action("SELECT *",$table,$where) ;
} 

public function delete($tabale , $where) {

    return $this->action('DELETE' ,$table , $where) ;
        }  

public function count() {

    return $this->_count ;
}

 public function error() {

    return $this->_error ;
 }
  } 

index.php

$a = db::getInstance()->get('users',array('username','=','ram')) ;
if(!$a->count()) {

echo "No User" ;
 } else {

echo "OK " ;
  }   

索引文件上有一个错误:

致命错误:调用第4行布尔值上的成员函数count()。

共有2个答案

董子航
2023-03-14

删除函数中$table参数的拼写错误。并且所有符号*在下一行的删除查询中丢失。

何嘉运
2023-03-14

您的-

$a = db::getInstance(); // returns the instance
$a->get('users',array('username','=','ram')); // this return true or false
if(!$a->count()) {
    echo "No User" ;
} else {
    echo "OK " ;
}   

-

$sql = "{$action} FROM {$table} WHERE {$field} {$operator} ?" ;

 类似资料:
  • 我正忙于从DB获取设置的函数,突然,我遇到了以下错误: 通常,这意味着我正在从不存在的表和东西中选择东西。但在这种情况下,我不是... 下面是getSting函数:

  • 密码 错误 致命错误:调用第26行C:\xampp\htdocs\create.php中布尔值的成员函数bind_param()

  • 这是我的函数,我在这里坐了很长时间,试图找出什么不起作用,它说它在$stmt2的行上- 如果我放一个$stmt2-

  • 我问了几个问题,但没有人帮忙。 致命错误:在中的布尔值上调用成员函数bind_param()- 我在PDO中使用PHP5和mySql: 连接和选择工作正常,但插入不想工作 这就是我的功能: 数据库模式是: id(int not null auto_inc)|昵称(varchar not null)|电子邮件(varchar not null)| insertdate(datetime)| upda

  • 试图创建一个登录屏幕,我得到一个错误 致命错误:在第19行的C:\xampp\htdocs\login\class\Mysql.php中,对非对象调用成员函数准备() Constants.php

  • 问题内容: 我正在尝试检查注册中是否已使用电子邮件。当我在学校工作时,它运行良好,但现在突然显示出一个错误: 致命错误:在null上调用成员函数prepare() 我用这个包括 在这里 问题答案: 编辑:( 我想通了)。 我终于弄清楚了为什么您的代码无法正常工作,而我原来的答案已不再适用,我已将其剔除掉。 连接不起作用的原因是因为您从连接参数中省略了常量。 即使您可能没有设置密码,也仍然需要将其作