我试图从我在数据库中的费用表中返回三个参数。 这是我的函数,位于users.php
public function expense($username, $i) {
$query = $this->db->prepare("SELECT * FROM `expenses` WHERE `username`= ?");
$query->bindValue(1, $username);
$i=1;
$totalSpent=0;
try{
$query->execute();
foreach ($query as $row) {
print "Username: " . $row['username'] .", Amount: ". $row['amount'] ."$, Type: ". $row['type'] .", Date: ". $row['date'] .", Comment: ". $row['comment'] . ".<br>";
$totalSpent+=$row['amount'];
$i++;
}
return $query->fetch();
return $i;
return $totalSpent;
} catch(PDOException $e){
die($e->getMessage());
}
}
我已在view.php文件中设置它以检索与用户名匹配的列,如下所示:
<?php
$users->expense($username);
?>
我的问题是我正在向函数发送一个参数($username
),但根据函数,我还想检索$i
(实际上是行数)和$totalSpent
这是行数量的总数。
查看行工作正常,但我尝试了多种方式但无法设法检索$i
和$totalSpent
变量。
我很新,所以我很期待如何改善我的代码,如果我做错了。
答案 0 :(得分:0)
您只能从函数调用中返回一个项目,因此请将该项目作为数组或对象:
return array(
'results' => $query->fetch(),
'i' => $i,
'totalSpent' => $totalSpent
);
访问使用:
$returnValues = $users->expense($username);
$userQueryResult = $returnValues['results'];
但是当您使用类时,您还可以使用这些值设置公共类属性,然后只从方法外部访问对象属性
public function expense($username, $i) {
$query = $this->db->prepare("SELECT * FROM `expenses` WHERE `username`= ?");
$query->bindValue(1, $username);
$i=1;
$totalSpent=0;
try{
$query->execute();
foreach ($query as $row) {
print "Username: " . $row['username'] .", Amount: ". $row['amount'] ."$, Type: ". $row['type'] .", Date: ". $row['date'] .", Comment: ". $row['comment'] . ".<br>";
$totalSpent+=$row['amount'];
$i++;
}
$this->queryResult = $query->fetch();
$this->i = $i;
$this->totalSpent = $totalSpent;
} catch(PDOException $e){
die($e->getMessage());
}
}
并使用
进行访问$users->expense($username);
$userQueryResult = $users->queryResult;
等
后者将是一种更清洁的方法