【问题标题】:Call MS SQL Stored Procedure from Laravel PHP从 Laravel PHP 调用 MS SQL 存储过程
【发布时间】:2018-07-19 19:36:49
【问题描述】:

我想从 .Net 的 PHP 代码调用 MS SQL 存储过程显示在屏幕截图中我想在 PHP 中调用相同的存储过程

我以前没有做过这样的事情。

这是我在 Laravel 上所做的:

public function test(){
$user =DB::select(DB::raw(
    "exec export.spGetConnection @Token = :token, ,@ReturnJSON = :json",
    [
        ':token' => '00000000-0000-0000-0000-000000000000',
        ':json' => @ReturnJSONOUTPUT
    ])
);
    var_dump($user);
}

但出现错误

********* 核心 PHP 中的这段代码适用于我 *****************

$conn = sqlsrv_connect( $serverName, $connectionInfo);

$tsql_callSP = "{call export.spGetConnection( ?, ?)}";  

$Token = '00000000-0000-0000-0000-000000000000';
$employeeId = 4;  
$ReturnJSON = "";  
$params = array(   
             array($Token, SQLSRV_PARAM_IN),  
             array(&$ReturnJSON, SQLSRV_PARAM_INOUT)  
           );  
$stmt3 = sqlsrv_query( $conn, $tsql_callSP, $params);  

【问题讨论】:

  • 您是否尝试过编写任何代码?有什么问题?
  • 你上网了吗?您寻找的教程很容易找到。这里有大约 800,000 个。 google.com/…
  • 是的@ficuscr 我已经用我尝试过的问题进行了编辑......
  • 是否支持:namedParaeters?还是您需要使用 ? ?即使它确实会假设数组键是'token' => 而不是':token' =>。错误告诉你一些事情。

标签: php sql-server laravel stored-procedures mssql-jdbc


【解决方案1】:

你可以这样执行

public function test(){

  $token = '00000000-0000-0000-0000-000000000000';
  $user =DB::select('EXEC export.spGetConnection ?', [$token]);
  print_r(json_encode($user));
}

希望对你有帮助

【讨论】:

  • 我已经对此进行了测试,但仍然报错:即“SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Procedure or function 'spGetConnection' expects parameter '@ReturnJSON',未提供。(SQL:EXEC export.spGetConnection 00000000-0000-0000-0000-000000000000)"
猜你喜欢
  • 1970-01-01
  • 2019-05-11
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 2012-09-06
  • 1970-01-01
相关资源
最近更新 更多