ホームページ >バックエンド開発 >PHPチュートリアル >パラメータを指定して MSSQL ストアド プロシージャを呼び出し、結果セットを返すことについて質問したいと思います。

パラメータを指定して MSSQL ストアド プロシージャを呼び出し、結果セットを返すことについて質問したいと思います。

WBOY
WBOYオリジナル
2016-06-23 13:05:281256ブラウズ

コードは次のとおりです:
if ($debug==1){echo "データベース接続に成功しました!476fc5a4643537c85759743e8f8d252bexec("SET names GB2312"); $stmt = $db->e​​xecute("call xyyh_stock_inventory 'R99.33569-0000-00'");
// $stmt->bindParam(1, $FNumber); // ストアド プロシージャを呼び出します
$stmt ->execute();
catch(pdoException $e){
print '実行に失敗しました: '.$e->getMessage();
私が呼び出した MSSQL ストアド プロシージャはSQL クエリ分析では、結果セットを返すコードを PHP で記述するにはどうすればよいですか?
対応する情報をオンラインで確認しましたが、少し愚かだったので、目的の結果セットを取得する方法がわかりませんでした。




ディスカッションへの返信 (解決策) $stmt->execute(); 何が返されるか?

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

コードを再変更し、
if ($debug==1){echo "データベース接続に成功しました!0c6dc11e160d3b678d68754cc175188a";}

try{

$ db->e​​xec("SET names GB2312");

$stmt=$db->prepare("call xyyh_stock_inventory :FNumber");

$stmt->bindParam(":FNumber", $FNumber, PDO) : :PARAM_STR);
if ($stmt->execute()){echo "実行成功!0c6dc11e160d3b678d68754cc175188a";}else{echo "実行失敗!d98d42c842c0401a9e43fd7a1db31008getMessage();
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();  	}	


まずはそれで間に合わせましょう

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。