php - Laravel +存储过程:错误数据包乱序
问题描述
我正在尝试从 laravel 5.6 调用存储过程,该存储过程在数据库客户端上可以正常工作。
CALL storedProcedure1(95, 2);
但是当我使用时:
$db = DB::select('exec storedProcedure1(?,?)', array(
$param1,
$param2
));
从 laravel 我得到以下信息:
“消息”:“数据包乱序。预期 1 收到 0。数据包大小 = 131072”,“异常”:“ErrorException”,“文件”:“D:\project\vendor\laravel\framework\src\Illuminate\Database \Concerns\ManagesTransactions.php", "行": 202,
我应该怎么做才能修复它?
解决方案
在 Laravel 中,我只想在整个应用程序的一个地方调用一个存储过程。所以,我不想在 Configs 中设置 PDO 属性来防止全局级别的任何异常。因此,我创建了一个 PDO 连接并实现如下:
$pdo = DB::connection()->getPdo();
$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$pdo->query('CALL my_stored_proc()');
推荐阅读
- reactjs - 监控 Firebase 身份验证对象属性更改?
- c++ - std:string::substr 是异常安全的吗?
- php - 如果它在文本框中传递,如何显示传递的变量
- javascript - 如何修复我的代码并获得数组中第一个和最后一个数字的相反顺序
- javascript - 从 Box3 创建 BoxBufferGeometry
- javascript - 数组和带有子字符串的字符串之间的部分交集
- perl - Perl 打印解释
- php - 如何从 Symfony 中的复选框类型中删除特定实体?
- javascript - 处理多个文件上传:当您将某些内容推送到数组时,数组何时更新?
- python - 将字典项目映射到熊猫系列时忽略大小写