php - PHP sqlserv - 执行存储过程的问题
问题描述
我正在尝试将参数传递给存储过程存储过程在管理工作室中执行良好,但是在尝试了下面代码的许多变体之后。
返回错误:
FAILED!Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -14 [code] => -14 [2] => 传递给 sqlsrv_execute 的参数无效。 [消息] => 向 sqlsrv_execute 传递了一个无效参数。))
<?php
include("connection.php");
$clerk_name1 = ''; $clerk_name2 = ''; $order1 = ''; $order2 = ''; $part1 = ''; $part2 = ''; $customer1 = ''; $customer2 = ''; $date_from = ''; $date_to = '';
if (!empty($_REQUEST['clerk_name1']) && !empty($_REQUEST['clerk_name2']) && !empty($_REQUEST['order1']) && !empty($_REQUEST['order2']) && !empty($_REQUEST['part1']) && !empty($_REQUEST['part2']) && !empty($_REQUEST['customer1']) && !empty($_REQUEST['customer2']) && !empty($_REQUEST['date_from']) && !empty($_REQUEST['date_to']))
$sql = "SET NOCOUNT ON; {CALL sp_order_activities (@clerk_name1 = ?, @clerk_name2 = ?, @order1 = ?, @order2 = ?, @part1 = ?, @part2 = ?, @customer1 = ?, @customer2 = ?, @date_from = ?, @date_to = ?)}";
$clerk_name1 = $_GET['clerk_name1']; $clerk_name2 = $_GET['clerk_name2']; $order1 = $_GET['order1'];
$order2 = $_GET['order2'];$part1 = $_GET['part1'];
$part2 = $_GET['part2']; $customer1 = $_GET['customer1'];
$customer2 = $_GET['customer2'];$date_from = $_GET['date_from'];
$date_to = $_GET['date_to'];
$stmt = sqlsrv_prepare( $conn, $sql, [
[$clerk_name1, SQLSRV_PARAM_IN],
[$clerk_name2, SQLSRV_PARAM_IN],
[$order1, SQLSRV_PARAM_IN],
[$order2, SQLSRV_PARAM_IN],
[$part1, SQLSRV_PARAM_IN],
[$part2, SQLSRV_PARAM_IN],
[$customer1, SQLSRV_PARAM_IN],
[$customer2, SQLSRV_PARAM_IN],
[$date_from, SQLSRV_PARAM_IN],
[$date_to, SQLSRV_PARAM_IN]
]);
if (!sqlsrv_execute($stmt)) {
echo "execute FAILED!";
die(print_r(sqlsrv_errors(), true));
}
$data = [];
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ){
$data[] = $row;
}
echo json_encode($data);
ob_flush();
flush();
?>
解决方案
推荐阅读
- html - 在 Angular 7 中,当嵌套两个按钮时,第二个按钮被忽略
- sql-server - 按财政年度划分的 SSRS/SQL 组 -- SQL Server 2014
- javascript - NodeJs Express 从数组生成获取请求
- javascript - 如何使用 node_modules/ 访问子依赖项的 .bin 脚本
- arrays - 如何将 ESNext Array 函数添加到现有的嵌套数组接口?
- python - 如何为 Celery 任务添加自定义 ID 以便稍后撤销任务?
- python - Python通过基于值过滤特定行来分组
- javascript - 如何在vue的桌子前制作徽章?
- mysql - 使用 group by 进行分割和计数
- c - 使 AC_ARG_WITH 影响后续 AC_CHECK_HEADERS 的 gcc 调用