Rumah >pembangunan bahagian belakang >tutorial php >请教一个调用带参数的MSSQL存储过程,返回结果集的问题

请教一个调用带参数的MSSQL存储过程,返回结果集的问题

WBOY
WBOYasal
2016-06-23 13:05:281256semak imbas

代码如下:
if ($debug==1){echo "数据库连接成功!
";}
try{
$db->exec("SET names GB2312"); 
$stmt = $db->execute("call xyyh_stock_inventory 'R99.33569-0000-00'");
// $stmt->bindParam(1, $FNumber); 
// 调用存储过程
$stmt->execute();
}
catch(pdoexception $e){
 print '执行失败: '.$e->getMessage(); 
 exit();  
}
我调 用的MSSQL存储过程已调试好,在SQL的查询分析中可以返回想到的结果,请教如何写代码过能在PHP中返回结果集?
网上查了相应的资料,笨了点,没弄明白如果得到想要的结果集。


回复讨论(解决方案)

$stmt->execute();
返回了什么?

PDOStatement Object ( [queryString] => call xyyh_stock_inventory ? ) 

重新修改了代码,
if ($debug==1){echo "数据库连接成功!
";}
try{
$db->exec("SET names GB2312"); 
$stmt=$db->prepare("call xyyh_stock_inventory :FNumber");
$stmt->bindParam(":FNumber", $FNumber, PDO::PARAM_STR);
if ($stmt->execute()){echo "执行成功!
";}else{echo "执行不成功!
";}
}
catch(pdoexception $e){
 print '执行失败: '.$e->getMessage(); 
 exit();  
}
并执行,结果显示在 $stmt->execute()处执行  不成功

最算是找到了解决目前用的办法 
 

if ($debug==1){echo "数据库连接成功!<br>";}		try{		$stmt = $db->prepare('exec xyyh_stock_trantype_1_24 ?');		$stmt->bindParam(1,$FNumber);		$stmt->execute();		if ($debug==1){ print_r($stmt);echo "<br>";}			$i=1;				echo "<table class='hovertable'><tr><th>日期</th><th>单据编码</th><th>物料编码</th><th>物料名称</th><th>计量单位</th><th>业务类型</th><th>异动数量</th></tr>";		do {			$rowset = $stmt->fetchall(PDO::FETCH_ASSOC);			if ($rowset){								if ($debug==1){print_r($rowset);echo "<br>";}				if ($debug==1){print_r($rowset[$i]);echo "<br>";}								foreach ($rowset as $row) {					echo "<tr>";					echo "<td>".$row["FDate"]."</td><td>".$row["FBillNo"]."</td><td>".$row["FNumber"]."</td><td>".$row["FName"]."</td><td>".$row["FUnitName"]."</td><td>".$row["FTranType"]."</td><td>".$row["FQty"]."</td>";					echo "</tr>";					}						}			$i++;		} while ($stmt->nextRowset());		echo "</table>";	}		catch(pdoexception $e){		print '执行失败: '.$e->getMessage(); 		exit();  	}	


先凑合用一下

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn