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

时间:2015-06-10 17:53:47

标签: php arrays sql-server pdo

我们在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>';
?>

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

我要做的是返回Tickets的值(例如; 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);

我得到&#34; 500 - 内部服务器错误&#34;

谁能看到我哪里出错了?我开始秃顶脱毛了。

感谢。

1 个答案:

答案 0 :(得分:0)

在执行语句后使用类似的内容:

$results = $stmt->fetchAll()

然后循环结果:

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