欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2024-01-09 15:56:16
...
代码如下:
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 "数据库连接成功!
";} try{ $stmt = $db->prepare('exec xyyh_stock_trantype_1_24 ?'); $stmt->bindParam(1,$FNumber); $stmt->execute(); if ($debug==1){ print_r($stmt);echo "
";} $i=1; echo "
"; do { $rowset = $stmt->fetchall(PDO::FETCH_ASSOC); if ($rowset){ if ($debug==1){print_r($rowset);echo "
";} if ($debug==1){print_r($rowset[$i]);echo "
";} foreach ($rowset as $row) { echo ""; echo ""; echo ""; } } $i++; } while ($stmt->nextRowset()); echo "
日期 单据编码 物料编码 物料名称 计量单位 业务类型 异动数量
".$row["FDate"]." ".$row["FBillNo"]." ".$row["FNumber"]." ".$row["FName"]." ".$row["FUnitName"]." ".$row["FTranType"]." ".$row["FQty"]."
"; } catch(pdoexception $e){ print '执行失败: '.$e->getMessage(); exit(); }

先凑合用一下

上一篇:

下一篇: