php用PDO 方式连接的sqlserver ,怎样调用带返回值的分页储存过程呢?
ALTER PROC [dbo].[sp_PageView]
@tbname varchar(128), --要分页显示的表名
@FieldKey varchar(1000), --用于定位记录的主键(惟一键)字段,可以是逗号分隔的多个字段
@PageCurrent int=1, --要显示的页码
@PageSize int=10, --每页的大小(记录数)
@FieldShow varchar(1000)='', --以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段
@FieldOrder varchar(1000)='', --以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC
-- 用于指定排序顺序
@Where varchar(1000)='', --查询条件
@RecordCount Int Output, --记录总数
@PageCount int OUTPUT --总页数
以上是储存过程的参数设置
$stmt = $conn->prepare("EXEC $procName ?, ?, ?, ?, ?, ?, ?,?,?");$stmt->bindParam(1, $tablename, PDO::PARAM_STR );$stmt->bindParam(2, $FieldKey, PDO::PARAM_INT );$stmt->bindParam(3, $Pagecurrent, PDO::PARAM_INT );$stmt->bindParam(4, $Pagesize, PDO::PARAM_INT );$stmt->bindParam(5, $FieldShow, PDO::PARAM_STR );$stmt->bindParam(6, $FieldOrder, PDO::PARAM_STR );$stmt->bindParam(7, $Where, PDO::PARAM_STR );$stmt->bindParam(8, $recordcount, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, 4);$stmt->bindParam(9, $PageCount, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, 4);
$stmt->execute();
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);echo json_encode($row,JSON_UNESCAPED_UNICODE);print "";
echo $PageCount;运行后,记录集有了最后的总页数显示为0 。