【问题标题】:Cant call stored procedure from PHP无法从 PHP 调用存储过程
【发布时间】:2017-12-17 03:28:58
【问题描述】:

有人能指出我在 mssql 中调用存储过程的 php 代码有什么问题吗?以下 sql 查询在 mssql studio 中运行良好:

EXEC updateRecord 'Record','Closed','Jon','query test4','',''

这是我用来尝试调用 updateRecord 的 php 代码:

<?php
 $Record = $_POST['record'];
 $Stat = $_POST['Status'];
 $Tech = $_POST['Tech'];
 $Action = $POST['Action'];
 $Date = date("Y/m/d");
 $time = date("G:i:s");
 //connect to sql
 $hostname = '127.0.0.1\SQLserver';
 $options = array('Database'=>'CallHistory', 'CharacterSet' => 'UTF-8');
 $conn = sqlsrv_connect($hostname, $options); 
 if(!is_resource($conn))
 { 
 echo 'Could not connect: ';
 var_dump(sqlsrv_errors(SQLSRV_ERR_ALL)); 
 exit(0);
 }

 //    echo "Success";
 //    sqlsrv_close($conn);

 // DB queries

 if (empty($_POST['record']) && empty($_POST['Statut'])&&empty($_POST['Tech']) && empty($_POST['Action']))
 {
 echo "CHoose at least one";
 }
else
{
$query1 = "exec updateRecord $Record,$Stat,$Tech,$Action,$Date,$time";
}
$ask = sqlsrv_query($conn, $query1);
sqlsrv_fetch($ask);
.........
?>

我忘记了什么……? 服务器似乎返回一个空响应并且实际记录没有更新。

【问题讨论】:

  • 试试这样:$query1 = "CALL updateRecord $Record,$Stat,$Tech,$Action,$Date,$time";
  • 当您尝试运行此代码时遇到什么错误?
  • @AslanShemilov 效果一样没有变化没有错误
  • @Gary Ewan Park 没有错误,只是一个空响应
  • 不应该是 $query1 = "CALL updateRecord($Record,$Stat,$Tech,$Action,$Date,$time)"

标签: php sql-server sql-server-2012


【解决方案1】:

让它工作:

$query1 = "EXEC updateRecord @Record = '$Record', @Status = '$Stat', @Tech = '$Tech', @Date = '$Date', @time = '$time', @Actions = '$Action'";

thanks to this:https://stackoverflow.com/a/44911709

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2017-05-21
    • 2016-01-11
    相关资源
    最近更新 更多