我有一个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;
正确的语法是什么?
答案 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}的元素}。
问题可能是由于构造函数中的代码无法正常工作;你没有在那里进行任何错误检查,所以如果它失败了,它就不会告诉你它。
在构造函数中添加一些错误检查,找出它失败的原因并修复它。