如何使用mysql在PHP中循环获取的查询

时间:2016-12-29 16:07:44

标签: php mysql

我有一个PHP类,我在构造函数中初始化从数据库中检索的数组:

class TableClass{
    public function __construct($con, $id){
        $this->con = $con;            
        $query = mysqli_query($this->con, "SELECT * FROM table1 WHERE id='$id'");
        $this->table_result= mysqli_fetch_array($query);
    }
}

我有不同的功能,我想使用该数组,而无需再次获取。我只是想循环结果并进行一些计算。

我尝试了以下语法:

public function getNumberOfComments(){
    for ($i = 0; $i < count($this->table_result); $i++) {
          $comment= $this->table_result[$i]['comment'];                    
    }
}

我收到错误:

  

非法字符串偏移&#34;评论&#34;

正确的语法是什么?

2 个答案:

答案 0 :(得分:3)

您从结果集中获取一行:

$this->table_result= mysqli_fetch_array($query);

假设id是主键,结果集中将有0行或1行,因此如果找到一行,您可以直接访问这些字段而不使用循环:

$comment= $this->table_result['comment']; 

答案 1 :(得分:0)

非法字符串偏移&#34;评论&#34; 告诉您$this->table_result[$i]的值不是数组,因此不包含名为{{1}的元素}。

问题可能是由于构造函数中的代码无法正常工作;你没有在那里进行任何错误检查,所以如果它失败了,它就不会告诉你它。

在构造函数中添加一些错误检查,找出它失败的原因并修复它。