如何在Laravel上调用存储过程?

时间:2015-05-28 05:52:50

标签: php laravel-5

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

  

Connection.php line 620: SQLSTATE[42000]:中的QueryException语法错误或访问冲突: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,,,,,,,)'); 附近使用正确的语法

我的代码是......

$start_day = '20150530';
$end_day = '20150602';

function output_days($start_day, $end_day) {
    while (strtotime($start_day) <= strtotime($end_day)) {
        $date[] = $start_day;
        $start_day = date ("Y-m-d", strtotime("+1 day", strtotime($start_day)));
    }
    return !empty($date) ? $date : 'LOL :) Correct date please';
}

print_r(output_days($start_day,$end_day));

请任何人给我解决方案.....

3 个答案:

答案 0 :(得分:13)

试试这个,

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

效果很好。

答案 1 :(得分:8)

你改变了。

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

尝试完美的工作......

答案 2 :(得分:0)

使用PHP Laravel框架运行Microsoft SQL Server存储过程(MS SQL Server)。如果您尝试使用Laravel Model运行SP,则可以使用以下两种方法。

$submit = DB::select(" EXEC ReturnIdExample ?,?", array( $paramOne ,$paramTwo ) ); 

$submit = DB::select(" EXEC ReturnIdExample $paramOne,$paramTwo ");

如果要传递Varchar参数,请使用以下命令:

$submit = DB::select(" EXEC ReturnIdExample '$paramOne', '$paramTwo' ");

如果您只是传递INT或BIGINT的参数,则此方法应该起作用,并且您可以从SP获取返回值:

$submit = DB::select(" EXEC ReturnIdExample $paramOne,$paramTwo ");

我的原始答案:Laravel Model SQL Server:从存储过程获取输出参数:

Laravel Model SQL Server: Get Output Parameters from Stored Procedure