无法从php数组中检索单个值


Not able to retrieve a single value from php array

我们在MSSQL中有一个存储过程,它返回两个值:

Agent | Tickets
int   | int

我们成功连接到数据库服务器,并使用pdo调用SP,如下所示:

<?php 
//Declare hostname variable
$hostname = 'servername';
try {
$conn = new PDO("sqlsrv:Server=$hostname;Database=dbnamee");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$agent = 249;
$stmt = $conn->prepare("{CALL Proc_GetActiveTicketsForAgent (:agent)}");
$stmt->bindParam(":agent",$agent, PDO::PARAM_STR);
$stmt->execute();
$results = array();
do {
$results []= $stmt->fetchAll();
} while ($stmt->nextRowset());
echo '<pre>';
print_r($results);echo "'n"; // all record sets
echo '</pre>';
?>

输出完整数组(作为测试)。

我要做的是返回票的值(例如;6,这是代理249上的当前票数),我可以通过使用:

$results = $stmt->fetch(PDO::FETCH_OBJ);
print($results->Tickets);

当我访问我们的索引站点,并使用include()函数时,我可以输出整个数组(这只是代码的一部分):

<!DOCTYPE html>
<html>
<head>
<title>sitetitle</title>
<meta charset="UTF-8">
</head>
<body>
<?php include('phpfile.php');
?>
<p>
<?php
echo '<pre>';
print_r($results);echo "'n"; // all record sets
echo '</pre>';
?>
</p>
</body>
</html>

但是当我尝试使用与前面相同的函数时:

print($results->Tickets);

我得到"500 - internal server error"

有人能看出我错在哪里吗?我拔头发都快秃顶了。

谢谢。

在执行语句之后使用如下内容:

$results = $stmt->fetchAll()

然后循环遍历结果:

foreach($results as $row){
    echo $row['Agent']. ": ". $row['Tickets'];
}