我们在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;
谁能看到我哪里出错了?我开始秃顶脱毛了。
感谢。
答案 0 :(得分:0)
在执行语句后使用类似的内容:
$results = $stmt->fetchAll()
然后循环结果:
foreach($results as $row){
echo $row['Agent']. ": ". $row['Tickets'];
}