将laravel用户创建的数据传递到存储过程中

时间:2019-03-16 03:24:56

标签: php laravel

我有一个存储过程,试图在创建时使用用户模型中的数据在laravel中调用。该过程可以使用2个参数手动正常运行。就该过程而言,第一个参数是CHAR,20,第二个参数是整数。

因此,一旦保存了用户,我只需获取状态和新创建的ID,并将它们作为过程的参数传递到方法调用中,然后执行过程即可。

发生这种情况时,我没有收到任何错误,但记录没有更新,因此我一生无法弄清楚原因。我认为它可能与数据类型有关,但我看不出为什么它不能与我拥有的东西一起工作

有什么我想念的吗?

 $user->save();

 //This dumps the correct values
 dd($user->status . $user->id);

 $updateUser = new userInfo();
 $updateUserInfo = $updateUser->updateUserStatus($user->status,$user->id);
 function updateUserStatus(string $status, $userID){
    $stmt = \DB::connection('odbc')->getPdo()->prepare('CALL UPDATE_STATUS(?,?)'); 
    $stmt->bindParam(1, $status, PDO::PARAM_STR, 20);
    $stmt->bindParam(2, $userID, PDO::PARAM_INT);
    $stmt->execute();
 }

2 个答案:

答案 0 :(得分:1)

这是我执行存储过程的方式:

DB::select('call UPDATE_STATUS(?, ?)', [ $status, $userID ]);

答案 1 :(得分:0)

您可以通过这种方式调用该过程。

 public partial class frmSalesTax : Form
{
    public string salesTax
    {
        get;
        set;
    }
    public frmSalesTax()
    {
        InitializeComponent();
    }

    private void btnCancel_Click(object sender, EventArgs e)
    {
        this.Close();

    }

    private void btnOk_Click(object sender, EventArgs e)
    {
        this.salesTax = txtPercent.Text;
        txtPercent.Text = "";

        Hide();


    }