Heim >Backend-Entwicklung >PHP-Tutorial >请教一个调用带参数的MSSQL存储过程,返回结果集的问题

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

WBOY
WBOYOriginal
2016-06-23 13:05:281249Durchsuche

代码如下:
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();  	}	


先凑合用一下

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn