簡體   English   中英

如何從帶有PHP預准備語句的SQL Server存儲過程中返回多個結果?

[英]How do I return multiple results from a SQL Server Stored Procedure with PHP prepared statements?

我有一個綁定到SQL Server 2012實例的應用程序。 我正在嘗試從主表tblProjects返回記錄,並從相關表tblPartners返回所有記錄。 當我在SQL Server中執行存儲過程時,我從兩個表中都得到了結果:

EXEC getProjectDetails @prjID = 14

在此處輸入圖片說明

我的存儲過程:

CREATE PROCEDURE getProjectDetails @prjID int = NULL
AS
BEGIN
    SELECT ProjectID, ProjectTitle, Latitude, Longitude, Acreage, LastModifiedDate, LastModifiedBy, Boundary.STAsText() As Boundary
    FROM tblProjects 
    WHERE ProjectID = @prjID

    SELECT PartnerName As Name, Type, Role, ProjectID
    FROM tblPartners
    WHERE ProjectID = @prjID
END
GO

PHP:

<?php
    $prjID = $_GET["prjID"];

    include_once("connection.php");
    $connectionInfo = array("Database"=>"$dbname", "UID"=>$user, "PWD"=>$pass);
    $DBH = sqlsrv_connect($server, $connectionInfo);

    if( !$DBH ) {
        echo "Connection could not be established.<br />";
    }

    $sql = "{CALL getProjectDetails(?)}";
    $params = array(&$prjID);

    if (!$stmt = sqlsrv_prepare($DBH, $sql, $params) ) {
        echo "Statement could not be prepared.\n";
    }

    if ( !$query = sqlsrv_execute( $stmt ) ) {
        echo "Statement could not be executed.\n";
    }

    $result = array();
    while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC) ) {
        $result[] = $row;
    }

    print json_encode($result);

結果輸出僅顯示第一個查詢的結果: 在此處輸入圖片說明

我是新來的; 是否可以通過這種方式或相關方式獲得多個表的結果?

將您的存儲過程正文更改為:

SELECT *
FROM tblProjects 
LEFT JOIN  tblPartners 
ON ( tblProjects.ProjectID = tblPartners.ProjectID  )
WHERE tblProjects.ProjectID = @prjID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM