【问题标题】:How to call stored procedure on Laravel?如何在 Laravel 上调用存储过程?
【发布时间】:2015-05-28 05:52:50
【问题描述】:

当我像这样在 laravel5 中运行更新存储过程时出现错误..

QueryException in Connection.php line 620: SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行 'Sandeep,09999999999,,,sandeep@gmail.com,,,,,,,)' 附近使用正确的语法 (SQL: call sp_clientupdate(108, Sandeep,09999999999,,,sandeep@gmail.com,,,,,,,))

我的代码是....

return DB::select('call sp_clientupdate(108, Sandeep,0999999999,,,sandeep@gmail.com,,,,,,,)');

请谁给我解决方案.....

【问题讨论】:

  • 用问题显示您的查询
  • 改用DB::statement
  • 请阅读有关 SQL 注入的内容。
  • 根据laravel.com/docs/5.5/database,DB::statement返回null;因此,如果您期望一个结果集,您似乎必须使用 DB::select。也就是说,我同意你不应该使用原始 SQL。鉴于 OP 正在调用存储过程,在我看来,他也有同样的感觉。

标签: php laravel-5


【解决方案1】:

试试这个,

DB::statement('call sp_clientupdate("108", "Sandeep","0999999999","","","sandeep@gmail.com","","","","","","",)');

效果很好。

【讨论】:

  • 程序后如何触发事件。我收到此错误数据包乱序。预计收到 1 个 36。数据包大小=10
【解决方案2】:

你改变了。

return DB::select('call sp_clientupdate("108", "Sandeep","0999999999","","","sandeep@gmail.com","","","","","","",)');

试试它是否完美运行......

【讨论】:

  • 我从这次交流中得出的结论是 OP 没有考虑到 MySQL 存储的例程不支持可选参数。也许,像我一样,他来自类似于 Microsoft SQL Server 的东西,确实如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多