我有一个存储过程,试图在创建时使用用户模型中的数据在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();
}
答案 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();
}