1. 程式人生 > >php與mssql儲存過程的返回值

php與mssql儲存過程的返回值

最近有個專案需要用php呼叫mssql的儲存過程,使用中發現一個問題,無論如何取不到儲存過程的返回值。
查了不少資料才找到原因。寫一下找到的解決辦法,給有需要的人看看。

先寫一個測試用的mssql儲存過程Test

沒有任何輸入和輸出,只有一個返回值9

原先的程式碼

發現對$rs如何操作都得不到返回值‘9’,
查了不少資料發現SQL有個內建關鍵詞RETVAL,型別是INT4,用來輸出返回值。


所以把程式改成


這樣就可以得到正確的返回值了。
:)給以後遇到困惑的人看看。

mssql_execute($sql);
上面是我呼叫的MMSQL 在儲存過中用通過呼叫的輸入引數進行資料處理; 現在已經能對資料進行處理 但在儲存過程中會通過return返回1或者0 我不知道如何接受,我根據MYSQL看了幾個函式,但都不行 有用過的請賜教 謝謝!
===========================================================
經過我查詢相關資料和MSSQL的30個函式,關於如何獲取MSSQL儲存過程返回值的方法我已經找到 ,只是目前還無法將返回的結果集找到;
下面我將找到的相關資料貼下來,希望對以後再遇到此類問題的朋友能夠提供一個好的建議;

在上面的這四個通過MSSQL_bind()函式來新增或者呼叫儲存過程的引數,其中可以看到第四個引數在前連個為FALSE,後兩個為TRUE; 當為TRUE時 引數為輸出引數;預設為FALSE;

這個時候關鍵要看的是MSSQL_EXECUTE函式的第二個引數,當它為TRUE時,,顯示的是返回引數,也就是你在儲存過程中定義的輸出引數或者預設的RETURN 引數;
當引數為FALSE時 將輸出結果集;;這一點比較重要;
不過如何正確的將結果集獲取到我還沒弄正確 ,方法出來後我會將方法貼出來供大家參考;

相關推薦

phpmssql儲存過程返回

最近有個專案需要用php呼叫mssql的儲存過程,使用中發現一個問題,無論如何取不到儲存過程的返回值。查了不少資料才找到原因。寫一下找到的解決辦法,給有需要的人看看。先寫一個測試用的mssql儲存過程Test ALTER procedure Test as retu

MSSQL儲存過程返回

儲存過程: CREATE PROCEDURE UserSelect@account varchar(50),@aa int output ASset @aa=5GO C#程式: CmdObj.Parameters["@aa"].Direction = ParameterDirection.Output;Cmd

SQL Server 儲存過程返回的幾種方式

獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC int exec @RC=

SQL Server 儲存過程返回彙總

獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC in

SqlServer獲取儲存過程返回的例項

public static int User_Add(User us)      {          int iRet;          SqlConnection conn = new SqlConnection(Conn_Str);          SqlCommand cmd = new Sq

php呼叫MSSQL儲存過程的方法

建立一個MSSQL儲存過程: CREATE PROCEDURE dbo.P__Test_GetData( @UserId int, @UserName nvarchar(100) output )A

oracle儲存過程返回

oracle的儲存過程只要返回的值是指定的型別就行了 有的時候我們會看到這種寫法的儲存過程 create or replace function func_add(num1 in number,num2 in number) return number is r numbe

sql server 呼叫儲存過程返回

1.OUPUT引數返回值 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_buyerid int , @o_id bigint OUTPUT )AS BEGIN SET NOCOUNT ON; BEGIN INSERT

儲存過程 返回 procedure return values

儲存過程有三種返回:  1. 用return返回int型資料  2. 用返回引數返回結果,可以返回各種資料型別(通過遊標來迴圈查詢結果每一行)  3. 直接在儲存過程中用select返回結果集,可以是任意的select語句,這意味著是任意的返回結果集 例子:1

Java程式碼獲取oracle儲存過程返回

package cn.itcast.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.

再論c#獲取儲存過程返回(包括SqlSugar)

  其實這個問題好多年以前研究過: https://blog.csdn.net/xpnew/article/details/6909902 最近因為需要統計日結月結,給同事寫了一套呼叫儲存過程的程式碼。同時因為專案ORM層是通過SqlSugar實現的,就又研究了一下SqlSugar呼叫儲存過程

.net中使用儲存過程output返回

資料庫中使用output值和return值: ------------------------------------------------------- --數獲儲存過程中的OUTPUT引數和返回值獲取 ---------------------------------

使用oracle function和儲存過程返回單個

1 function 返回值 function get_link_coalingid(p_id in varchar2 ) return varchar2  is          r_lid             varchar2(200);    begin     

mysql使用儲存過程返回多個

可以使用OUT、INOUT引數型別讓儲存過程返回多個結果值,儲存函式不能勝任,因為只能返回一個值。比如統計student資料表裡男生和女生人數並通過它的引數返回這兩個計數值,讓呼叫者可以訪問它們: delimiter $$ create procedure count_st

SpringMVC中的@requestMapping問題controller方法的返回問題

end pin Coding mage 返回 ren response font object @requestMapping 1、url映射   定義controller方法對應的url,進行處理器映射使用   @RequestMapping("/items")   pu

C#呼叫ORACLE儲存過程返回結果集

Oracle中scott使用者下建立儲存過程: (注:從9i開始有了sys_refcursor這種型別,在以前的Oracle版本中需要使用REF CURSOR,並且還需放在一個程式包中) create or replace procedure sp_getdept (result

asp.net core 2.1 dotnet(五)EF.core Dbfirst 生成 檢視呼叫儲存過程

1 檢視,可以直接在 Model中寫 檢視的模型 執行方式如找到一個,還沒有試過:     有關 .net core EF 的問題有一個地址: https://github.com/aspnet/EntityFra

mybaties呼叫mysql儲存過程儲存過程返回多個select結果集。

先看需求,直接上圖 從圖中看出,需要12條普通的SELECT語句,所以就放到儲存過程中 儲存過程如下: DROP PROCEDURE IF EXISTS proc_report; DELIMITER $ CREATE PROCEDURE proc_report( OUT d_norma

儲存過程呼叫儲存過程

--建立儲存過程的語法 if exists(select * from sysobjects where name='sp_selectStudent')  drop procedure sp_selectStudent go create procedure sp_selectStud

mssql儲存過程-動態更新update

 execute  T_llj3   @pkmsg='abc'; select * from test_llj_1;   delete from test_llj_1;   drop proc T_llj3;