Stored procedures 如何在Yii2中使用参数调用存储过程

Stored procedures 如何在Yii2中使用参数调用存储过程,stored-procedures,yii2,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 v

如何在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

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

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

如果返回行,则将execute替换为queryAll。