dongmi1221 2013-10-02 16:06
浏览 44
已采纳

数据库类方法不返回结果

I have looked and can not find what I am doing wrong here. I have a database class I created with the following method:

public function db_fetch_dataset($sql_qry)
{
    $log= new log_class;
    $db_conn = self::_connect();
    try{        
        $results = $db_conn->query($sql_qry);
        return $results;
    }catch(PDOException $e){            
        log_class::save_to_log($e,__LINE__,__FILE__);   
    }    
    $db_conn = null;
}

I am using it here:

$db= new database_class;
$sql_parties ="SELECT (SELECT political_party
                         FROM political_party_tbl
                        WHERE political_party_abbr = PARTY) as PARTY
                       ,count_of_voters
               FROM vrm_count_of_registered_voters_by_party_vw
             ORDER BY PARTY";

$results = $db->db_fetch_dataset($sql_parties); 

while($row= $results ->fetch(PDO::FETCH_ASSOC)) 
{
echo "<h4>".$row['PARTY'].": ".number_format($row['count_of_voters'])."</h4>
";
}

I am getting the following error: "Fatal error: Call to a member function fetch() on a non-object"

Would someone be kind enough to tell me what I am doing wrong or direct me to the answer? Thanks!!

Added- fyi: the query itself is not causing the error. It runs fine in SQL Server Manager.

  • 写回答

2条回答 默认 最新

  • dongzhi2887 2013-10-02 17:05
    关注

    Ok, got it working. Here is what worked:

    public function db_fetch_dataset($sql_qry)
    {
       $log= new log_class;
       $db_conn = self::_connect();
    
       try{    
        $exec_str= $db_conn->prepare($sql_qry);
            $exec_str->execute();
            return $exec_str;
           }catch(PDOException $e){         
            $log->save_to_log($e,__LINE__,__FILE__);    
           }    
        $db_conn = null;
    }
    

    and

    $db= new database_class;    
    $sql_parties ="SELECT (SELECT political_party
      FROM political_party_tbl
      WHERE political_party_abbr = PARTY) as PARTY
      ,count_of_voters
    FROM vrm_count_of_registered_voters_by_party_vw
    ORDER BY PARTY";
    
    $results = $db->db_fetch_dataset($sql_parties); 
    
    while($row= $results ->fetch(PDO::FETCH_ASSOC)) 
    {       
           echo "<h4>".$row['PARTY'].": ".number_format($row['count_of_voters'])."</h4>
    ";
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路