【问题标题】:SQLSTATE[HY000]: General error: 2053 when call SPSQLSTATE[HY000]:一般错误:调用 SP 时出现 2053
【发布时间】:2017-06-25 02:24:41
【问题描述】:

我正在使用 Laravel 4.2 并从服务器上的数据库调用存储过程。在本地它工作正常,但在服务器上,使用相同的数据库,它给出了错误。调用如下(我只想做select):

$result = DB::select('CALL sp_special_prices("'.$codClient.'", "'.$codProduct.'", "'.$quantity.'", "'.$grup.'", "'.$FirmCode.'")');

在服务器上运行产品列表时,除了两篇文章外,它都可以工作,出现以下错误:

Caught exception: SQLSTATE[HY000]: General error: 2053 (SQL: CALL sp_special_prices("C000000", "445706049", "1", "146", "75");) 

我已经检查了 php 版本,并且在两个站点上都使用 5.6。会不会是一些特殊的配置?是不是DB是一样的,叫SP的地方,是不是不一样。

【问题讨论】:

  • 请发布您如何在 sql 上使用此 proc 及其输出
  • @Paras, CALL sp_special_prices("C000000", "445706049", "1", "146", "75") 例如
  • 此过程是否返回任何内容?
  • @Paras,我觉得和产品代码有关,因为它没有给这个产品返回任何东西,而是在本地返回一个空数组,并且没有服务器给出错误。
  • 查看我的答案,如果它解决了问题,请告诉我

标签: php sql laravel stored-procedures laravel-4


【解决方案1】:

如果过程没有返回任何内容,您需要使用DB::statement 而不是DB::select。如果它确实返回了一些东西,你需要使用DB::select

如果过程具有可变行为(可能会或可能不会根据输入返回数据),我建议您更改过程以返回所有输入组合的一些数据

【讨论】:

  • 是的,我的过程具有可变行为(可能会或可能不会返回数据,具体取决于输入)。不返回数据时,不应该返回一个空数组吗?还是零?在我的桌面返回空数组。
猜你喜欢
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 2014-12-31
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
相关资源
最近更新 更多