如何使用Yii2中的参数调用存储过程

时间:2016-06-23 10:05:36

标签: stored-procedures yii2

如何使用Yii2中的参数调用存储过程?

这是我的存储过程

ALTER PROCEDURE [dbo].[usp_M_Inventory#InsertData]
    @ID_Item RunNum,
    @Item_Name varchar(250),
    @ID_Mom varchar(50),
    @Item_Price float,
    @ID_Inv_Category RunNum,
    @Item_PIC1 varchar(50),
    @Item_PIC2 varchar(50),
    @Item_active BIT,
    @User UserDataType
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO M_Inventory(ID_Item, Item_Name, ID_Mom, Item_Price, 
                            ID_Inv_Category, Item_PIC1, Item_PIC2, 
                            Item_active, insert_user, insert_date, update_user, update_date)
    VALUES (@ID_Item, @Item_Name, @ID_Mom, @Item_Price,
            @ID_Inv_Category, @Item_PIC1, @Item_PIC2,
            @Item_active, @User, GETDATE(), @User, GETDATE())
END

1 个答案:

答案 0 :(得分:7)

您可以使用以下代码调用带参数的存储过程。

$result = \Yii::$app->db->createCommand("CALL storedProcedureName(:paramName1, :paramName2)") 
                      ->bindValue(':paramName1' , $param1 )
                      ->bindValue(':paramName2', $param2)
                      ->execute();