[英]Array to string conversion error?
我正在使用PDO并尝试显示表中有多少用户,但是出现此错误:
Notice: Array to string conversion in C:\Users\admin.phtml on line 10 Array
然后在我的管理类中:
public function CountUsers()
{
$query = "SELECT * FROM Users";
$statement = $this->_dbHandle->prepare($query);
// Then execute the query
$statement->execute();
// This will return the row from the database as an array
return $statement->fetchAll(PDO::FETCH_ASSOC);
}
然后在我的管理控制器中:
$Admin = new Admin();
$CountUsers = $Admin->CountUsers();
为了显示结果,我在phtml中有以下内容:
<var><?php echo $CountUsers; ?></var>
有人知道我在做什么错吗?
您应该尝试计算查询中的用户,如下所示:
public function CountUsers() {
$query = "SELECT COUNT(1) FROM Users";
$statement = $this->_dbHandle->prepare($query);
if($statement->execute()) {
// This will return COUNT(1) field
return $statement->fetch(PDO::FETCH_NUM)[0];
}else{
return 0; // should the query fail, return 0
}
}
如果您想坚持使用PHP进行计数(不应该这样做),请修改代码以执行以下操作:
return count($statement->fetchAll(PDO::FETCH_ASSOC));
但是您不应该仅查询和丢弃所有数据。 使用SQL count
性能要好得多,原因有以下几个:
fetchAll
,它将所有数据存储到PHP数组中,占用内存 要显示有意义的文本或使用此功能执行某些操作,您可以:
function CheckUsers() {
$userCount = CountUsers();
if($userCount == 0) {
echo 'No users found';
}else{
echo $userCount . ' users found';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.