我试图从Laravel5.6调用一个存储过程,存储过程从数据库客户端运行良好。
CALL storedProcedure1(95, 2);但当我用:
$db = DB::select('exec storedProcedure1(?,?)', array(
$param1,
$param2
));我从拉拉上得到了以下信息:
“消息”:“数据包无序。预期1收到0.包size=131072",”异常“:"ErrorException",”文件“:”行“:202,
我该怎么做才能修好它?
发布于 2019-09-04 20:40:49
您可以编辑config/database.php文件并将其添加到数据库连接中。
'options' => array(
PDO::ATTR_EMULATE_PREPARES => true
),警告:这可能不是最好的方法。
我在这里找到了这个解决方案:来源
发布于 2019-10-23 12:14:50

您可以在laravel 5.4中解决这个数据包大小问题。在数据库文件中编写这一行代码。在有问题的地方编写这行代码,比如在MYSQL中有问题,然后用MYSQL编写oR,然后在PGSQL中编写,对于其他数据库类型也要这样做。
'options' => [
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
PDO::ATTR_EMULATE_PREPARES => true,
]发布于 2021-01-20 19:38:20
在Laravel中,我只想在整个应用程序中的一个地方调用一个存储过程。因此,我不想在Con图中设置PDO属性,以防止在全球范围内出现任何异常。因此,我创建了一个PDO连接并按以下方式实现了它:
$pdo = DB::connection()->getPdo();
$pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$pdo->query('CALL my_stored_proc()');https://stackoverflow.com/questions/55035101
复制相似问题