对于一个应用程序,我试图计算朋友的总数。我想用一个函数做这个,但它没有返回任何东西。它告诉我这个:
警告:mysqli_query()需要至少2个参数,1个给定
但我只需要一个参数。我想我完全错了。
这是功能:
public function GetTotalOfFriends($user_id){
$db = new Db();
$select = "SELECT COUNT FROM friendship WHERE (friendship_recipient_id ='" . $user_id ."' OR friendship_applicant_id = '" . $user_id . "') AND friendship_status = 'accepted'";
$result = $db->conn->query($select);
$row = mysqli_query($result);
$total = $row[0];
echo $total;
我试图以这种方式打印出来:
$friend = new Friendship;
$numberoffriends = $friend->GetTotalOfFriends($user_id);
<?php echo $numberoffriends; ?>
答案 0 :(得分:2)
你混淆了几件事。行$result = $db->conn->query($select);
似乎已经执行了查询,但是您尝试通过再次将该查询结果传递给mysqli_query
来绕过数据库包装器。
除此之外,我认为您的查询本身也是错误的。 COUNT
需要一个参数,指示要计数的字段或值。通常使用COUNT(*)
,但COUNT('x')
在某些情况下可能更有效。您还可以使用特定的字段名称,COUNT
将为您计算非空值。
您获得的结果是一个mysql_result对象,您需要使用该对象来获取查询结果的实际数据。 documentation of this object为here,我建议您仔细阅读。
一种可行的方法是使用:
$resultArray = $result->fetch_row();
这将导致查询的第一行(也是唯一一行)。它表示为一个数组,带有一个值(因为您的查询只返回一列)。您可以像这样获取该值:
return $resultArray[0];
如果您想以不同的方式使用数据,也可以使用任何其他获取方法。