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

2024-07-04

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 ;
 }
  } 

索引.php

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

echo "No User" ;
 } else {

echo "OK " ;
  }   

索引文件有错误:

致命错误:在第 4 行调用 Boolean 成员函数 count()。


Your ->get(..)方法返回值来自->action这是一个boolean所以这样做:

$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 " ;
}   

你还错过了一些美元->action(),它需要是:

$sql = "{$action} FROM {$table} WHERE {$field} {$operator} ?" ;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

致命错误:对布尔值调用成员函数 count() 的相关文章

  • 验证 $_REQUEST 内容是否为 int

    我正在尝试执行一个基本操作 检查字符串是否是数字 这不起作用 qty REQUEST qty if is int qty FALSE echo error else echo ok 这个的作用是 qty 1 if is int qty FA
  • DoReferenceTransaction 未取得成功

    看看我如何开始完整的程序 步骤1 首先调用SetExpressCheckout AMT 0 00 PAYMENTREQUEST 0 AMT 0 00 PAYMENTACTION BILLINGAGREEMENTDESCRIPTION BIL
  • 如何解决phpmyadmin超时问题?

    我想要导入巨大的 at least300 mb 通过 phpMyAdmin 的 SQL 脚本 我试过了 post max size 750M upload max filesize 750M max execution time 300 m
  • GUI MySQL 数据库前端[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我对一款软件有一个有点绝望的愿望清单 但我不知道它是否存在 它需要什么 免费使用 在小型企业中 在带有
  • 检查您的代码是否在 64 位 PHP 上运行

    有谁知道在 PHP 中检查脚本是否以 32 位或 64 位运行的方法 目前我使用的是 PHP 5 3 5 理想情况下 我想编写一个函数 以便我的代码如下所示 if is 32bit true do 32bit workaround do e
  • 尝试调用方法:未定义函数错误

    我有一个类可以连接到我的数据库 剥离内容并从数据库查询中返回内容 不管怎样 我遇到的问题是我正在尝试打电话runQuery 方法 但每次我尝试时 都会收到此错误 致命错误 调用 DatabaseConnector php 第 22 行中未定
  • 在 php 中编写回调函数时传递参数(Laravel 5)

    我正在使用 Laravel 5 进行 php 编程 我有这段代码 newUser this gt create request gt all newUser gt save newAccount new Account user id gt
  • Cron 调度程序 CakePHP 2.0

    我正在使用 CakePHP 2 0 并一直在尝试设置一个 cronjob 来执行控制器中的方法 我一直在疯狂地浏览各种教程和随机网站 看看是否能找到解决方案 我收到的错误是这样的 Undefined variable argc APP we
  • 按类别(术语)过滤 WooCommerce $order 商品

    在这个问题中 我拥有所有的部分 但我似乎无法将它们组合在一起 我有一个 WooCommerce 订单的打印模板 它以正常方式列出产品 它们存储在数组中的顺序 这又是它们放置在购物篮中的顺序等 但是 我们希望它们按类别 术语 分组 所以这意味
  • 在 Codeigniter 中创建块/模块

    到目前为止 我一直很喜欢使用 CodeIgniter 创建一些简单的 Web 应用程序 实际上只是学习框架 但我无法找到创建块 模块的简单方法 我希望有一个 最近的图像 块 我可以将其放在网站上的任何页面上 而无需在每个页面的控制器中重复查
  • 在提交之前合并 $_GET 变量[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我不太确定这是否可能 但这是我无法弄
  • PHP回显随机数组并插入数据库而不重复

    我有一个代码可以滚动一个随机数字 并根据获胜者的机会显示获胜者 data array foreach getAllUserTicketHistoryJson as value data value user id number format
  • 如何使用 TCPDF 将字体嵌入到 PDF 中?

    我尝试使用 TCPDF 其代码如下 require once SERVER DOCUMENT ROOT tcpdf tcpdf php pdf new TCPDF PDF PAGE ORIENTATION PDF UNIT PDF PAGE
  • PDO中使用持久连接有什么缺点

    在 PDO 中 可以使用以下方法使连接持久化PDO ATTR PERSISTENT属性 根据 php 手册 持久连接不会在脚本结束时关闭 而是 当另一个脚本请求连接时 会被缓存并重新使用 相同的凭据 持久连接缓存允许您 避免每次建立新连接的
  • 使用 Cookie 记住我时的安全性

    我已经在 PHP 中实现了一个登录类 并且想要创建一个记住账号键入功能 这样用户就不必每次访问都登录 我对此进行了一些研究 并准备使用 PHP setcookie 编写它 但后来遇到了这个页面 如何使用 jquery 创建 记住我 并存储
  • 如何在Carbon实例中添加CarbonInterval实例

    我有一个碳实例 a Carbon Carbon now Carbon Carbon date 2018 06 11 10 00 00 timezone type 3 timezone Europe Vienna 和一个 CarbonInte
  • 如何循环调用分页函数?

    我正在尝试使用空气桌API https airtable com api从我的数据中检索记录 具体来说 是我在列单元格中的 URL 列表 我写了一个函数 get airtable records 通过以下方式进行 API 调用curl它可以
  • 如何在 PHP 中直接将 docx 转换为 ePub? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 试图找到一个 PHP 库 使我能够将 docx 转换为 ePub 我知道 Java 解决方案 例如http code google com
  • 发送抓取请求以获取 torrent 的种子和同级

    我一直在尝试创建一个 torrent 网站 但我遇到了以下问题 如何发送 torrent 抓取请求以获取其播种者和水蛭 我有一个 PHP 类函数 它为我提供公告列表 public function getTrackers Load trac
  • 如何读取PHP上传的文件头?

    我们能否在PHP中读取文件的头信息来判断上传的文件类型 我不想依赖 FILES control name from client type 我们知道 该属性通过读取上传文件的扩展名来确定文件类型 如果用户重命名怎么办 test jpg gt

随机推荐