[英]Getting results from a MySQL Stored Procedure in PHP5 using prepared statements
[英]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.