带有命名参数的 php sqlsrv_query 存储过程

2023-12-30

我使用 php 5.4 和 sqlsrv 扩展,我试图调用这个示例存储过程(NorthWind 数据库):

create  PROCEDURE [dbo].[GetCategories] 
@CategoryID int = null
AS
SELECT * from dbo.Categories where CategoryID= IsNull(@CategoryID,CategoryID)

我正在使用这个 sqlsrv_query 语法:

$sql = "{ call dbo.GetCategories (?)}";
$catID=2;
$params = array($catID);
$stmt = sqlsrv_query( $conn, $sql,$params);

我想在 $params 中指定参数名称和值,就像这样:

$sql = "dbo.GetCategories";
$catID=2;
$params = array("@CategoryID"=>$catID);
$stmt = sqlsrv_query( $conn, $sql,$params);

它返回此错误:参数数组中不允许使用字符串键。

我怎么解决这个问题? 谢谢


我使用 PDO 找到了这个解决方案:

$dbh = new PDO('sqlsrv:server= ...');
$sql = "{CALL dbo.GetCategories (@CategoryID=:CategoryID)}";
$stmt = $dbh ->prepare($sql);

$stmt->bindParam('CategoryID', $catID, PDO::PARAM_INT);

$stmt->execute();

$results = array();
do {
    $results []= $stmt->fetchAll();
} while ($stmt->nextRowset());

echo '<pre>';


echo($results[0][0]['CategoryID'] . ', '.
         $results[0][0]['CategoryName'] . ', '.
         $results[0][0]['Description']);
echo '</pre>';

$stmt->closeCursor();
unset($stmt);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有命名参数的 php sqlsrv_query 存储过程 的相关文章

  • 如何使用 Zend 2 http 发送 json 数据?

    我已经为此苦苦挣扎了几天 我需要将一组以 json 编码的数据发送到 api 我正在尝试使用 Zend 2 http 来实现这一点 但到目前为止我还没有运气 以下是 api 手册的内容 Bulk Create Contacts This c
  • 从存储过程执行SQL Server代理作业并返回作业结果

    需要有一个存储过程来调用 SQL Server 代理作业并返回作业是否成功运行 到目前为止我已经 CREATE PROCEDURE MonthlyData AS EXEC msdb dbo sp start job N MonthlyDat
  • 在 csv 中查找数值

    我需要检查特定的数字 ID 是否在给定的字符串或逗号分隔值中 myVal 20 字符串可以仅包含多个值中的一个值 以逗号分隔 str 20 str 20 33 5 str 220 33 5 4420 本来我想到用strpos 但是20可以在
  • 批量插入固定宽度字段

    如何使用批量插入命令指定字段长度 示例 如果我有一个名为 c Temp TableA txt 的表 并且它具有 123ABC 456DEF 我有一张桌子 例如 use tempdb CREATE TABLE TABLEA Field1 ch
  • 使用 PHP 将对象插入 Google Cloud Storage

    说实话 我对缺少使用 PHP 的 Google Cloud Storage 文档感到非常沮丧 我在这里 Stackoverflow 找到的大部分内容都已经过时了 这是我的尝试 postbody array data gt file get
  • 如何在我的查询中使用日期格式?

    这适用于 phpmyadmin 但是当我在代码上使用时给我一个错误 错误说 解析错误 语法错误 意外的 我的语法有什么问题 gt
  • PHP 下载页面

    这些 PHP 下载页面 例如 somesite com download php id somefile 通常如何工作 我最初想到了一个执行计数器操作的页面 然后简单地将用户重定向到文件 URL 这似乎是其他地方给出的唯一答案 但是我不知道
  • 如何在 PHP 中执行 shell 脚本?

    我有一个脚本 var www myscript sh它创建文件夹并运行命令svn update对于我的项目 我需要通过在浏览器中的 PHP 文件中调用它来执行此脚本 即本地主机 test php 我尝试使用函数shell exec and
  • 从数值中获取颜色值

    我需要一个项目从值中获取颜色 我解释说 我有日期 每个数据必须用颜色表示 红色代表最大值 蓝色代表最小值 绿色代表中间值 一种热图 所以 我需要一个返回正确颜色的函数 我尝试过这样的事情 function datatocolor min m
  • 使用 utf-8 文件名发送 MIME 编码的电子邮件附件

    你好亲爱的人们 我花了三天时间在网上搜索答案 但没有找到任何答案 我发现了很多 几乎 的案例 但没有一个正是我正在寻找的 我能够获取希伯来语的主题和正文消息 但无法获取希伯来语的附加文件名 顺便说一句 我对 PHPMailer 等第三方程序
  • BCP 实用程序:“复制方向必须是‘输入’、‘输出’或‘格式’”

    当我为可信连接运行 BCP 命令时 出现以下错误 复制方向必须是 输入 输出 或 格式 我尝试搜索 MSDN 其中指定传递的服务器名可能不正确 我正在尝试的命令是 bcp SQL database TABLE1 in FileSERVER
  • 使 Web 表单输入在各种情况下安全的正确方法是什么?

    你们都认为什么是正确的 阅读 最灵活 松散耦合 最健壮等 方法来使来自 Web 的用户输入安全地用于 Web 应用程序的各个部分 显然 我们可以为每个上下文 数据库 屏幕显示 保存在磁盘上等 使用各自的清理功能 但是是否有一些通用的 模式
  • 如何在使用 echo 时将字符串与函数调用连接起来?

    我想在我的 echo ed html 字符串中使用两个函数调用返回的值 li a href the permalink the title a li 以下工作正常 echo li a href echo the title echo a l
  • 我可以解密通过 PHP 加密的 C++ 数据吗?

    我正在使用 mcrypt encrypt 和 base64 encode 来加密 php 中的数据 我尝试用C 解密数据 但没有成功 我有使用多年的 C Rijndael 逻辑 以及 base64 decode 逻辑 后者完美地解码了 ph
  • 终端从包含空格的变量传递参数

    在终端中如何将包含空格的字符串作为参数传递 它实际上跳过了空格后面的部分 只取第一个单词 word soccer ball shell exec casperjs test js word word 那么我怎样才能转义空白它只运行这个命令
  • 访问php数组内部[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个像这样的数组打印 array 2 systems gt array 5 1 gt string 1 1111 2
  • 如何通过引用文档查询嵌入文档?

    我正在使用 Doctrine ODM 但在通过引用文档查询嵌入文档时遇到问题 考虑以下文件
  • 当我在 PHP 中将 print_r() 应用于数组时,为什么会得到“Resource id #4”? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 使用 min(datetime) 了解 SQL Server 行为

    长话短说 这只是我的一个愚蠢的假设 我确信一个专栏是一个日期时间 但它不是 所以不要指望在这个问题中找到任何有趣的东西 把它留在这里 以便民主党得到他的正确接受回答 我写了一个像这样的简单查询 SELECT ID MIN DateMadeA
  • 使用 Ajax 和 PHP 上传图像

    我想将图像上传到我的服务器 并控制 HTML 代码中的 PHP 回显 为此 我想使用 jQuery Ajax 但我不知道如何使用 Ajax 将图像发送到 PHP 这是一个大学项目 所以我不能使用任何类型的插件 我的实际代码 HTML

随机推荐

  • Xrm.Utility.openwebresource 打开新选项卡

    我们有一个 onprem crm 2016 我只需单击功能区按钮即可打开一个 html web 资源 我在用着Xrm Utility openWebResource 问题是我们使用的是 IE11 并且所有用户的浏览器都配置为让 IE 决定如
  • 使用 XDebug 和 PHPStorm 调试 Symfony2

    我尝试着尝试 但我无法在 PHPStorm 中使用 XDebug 为 Symfony2 获得正确的调试配置 我已经检查并重新检查过 phpstorm xdebug 与 symfony2 项目 https stackoverflow com
  • 如何创建九个补丁并在我的应用程序中使用它?

    我想创建一个九补丁图像并在我的应用程序中使用它 但我不知道如何创建它 我在网上搜索了 Android 源代码 但似乎找不到任何这样的示例 我需要一个教程 以便我能够理解该过程 我已经搜索过最好和最简单的答案制作 9 块图像 现在制作 9 个
  • Rcpp 相当于 rowsum [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找 R 函数的快速替代方案r
  • Python 请求:不要等待请求完成

    在 Bash 中 可以通过附加命令在后台执行命令 我怎样才能用Python做到这一点 while True data raw input Enter something requests post url data data Don t w
  • DrawContours() 不工作 opencv python

    我正在研究在 opencv python 中查找和绘制轮廓的示例 但是当我运行代码时 我只看到一个没有绘制轮廓的黑色窗口 我不知道我哪里错了 代码是 import numpy as np import cv2 im cv2 imread t
  • 如何在GAEJ中建模实体关系?

    我想知道 非常感谢一个例子 如何在 Google App Engine for Java 中建立关系建模 一对多 多对多 我在网上搜索了一下 没有发现任何关于 Java 的内容 所有指南和教程都是关于 Python 的 我由此明白了arti
  • 在 Android 中显示来自服务/接收器的“确定”对话框

    我的应用程序有一个接收器 当收到短信时会调用该接收器 我想用一个简单的一键对话框通知用户 这是我的代码 AlertDialog Builder builder new AlertDialog Builder context builder
  • 使用 Redis 作为缓存和 C# 客户端

    我是 Redis 新手 正在尝试找出一种简单的方法来使用 Redis 作为我的 C 应用程序的本地缓存 我已经下载并运行了 redis serverhttps github com MSOpenTech redis releases htt
  • 使用有效客户端证书时出现 HttpClient 403 错误

    我正在尝试使用 Java 自动执行网站上的一些任务 我有该网站的有效客户端 当我使用 Firefox 登录时有效 但当我尝试使用 http 客户端登录时 我不断收到 403 错误 请注意 我希望我的信任存储信任任何内容 我知道它不安全 但目
  • 在android studio中制作带有大写包名的apk

    在开始之前 让我解释一下假设 我意识到使用大写的包名称是不好的约定 在我的情况下 我们正在处理一个第三方发布的 Android 应用程序 其包名称大写 不幸的是应用程序有数百万次下载 因此重新发布不是一个选择 我已经做好了广泛的研究并找不到
  • 如何使用 JsonConvert.DeserializeObject 忽略空数组?

    我正在使用此调用从 JSON 读取对象列表 Rootobject userInfo JsonConvert DeserializeObject
  • MOC 将命名空间添加到类名中

    我在编译项目时遇到了这个非常奇怪的问题 MOC 似乎在被 moc ed 的类名中添加了一个命名空间 尽管文件 类中没有提到它 然而 命名空间存在于我使用的库中 但它隐藏在头文件中很远的地方 并且我不在 UI 文件中使用它 这就是 MOC 生
  • 通过麦克风录制移动 Safari 音频

    我已经做了相当多的搜索 我知道 PhoneGap 有很多解决方案可以让人们通过麦克风录制音频 但我正在寻找的是一个可靠且简单的示例 说明如何通过 Mobile Safari 从用户麦克风录制音频 有什么例子吗 HTML5 已经取得了相当大的
  • OpenCV 和 PCL 冲突?

    我正在使用 OpenCV 2 4 2 和点云库 1 6 0 我的程序工作正常 直到我添加该行 include
  • 套接字关闭问题 - 最后一部分数据丢失

    我有一个 Java 程序 它接受连接 接收 HTTP 请求并发送 HTTP 回复以及存储在文件中的一些数据 这是缓存代理的一部分 删除所有不相关的内容 我的代码如下所示 FileInputStream fileInputStream new
  • 尝试对查询中的 Firestore 结果进行排序

    我有一个查询 我想按开始日期排序并按结束日期过滤 return FirebaseFirestore instance collection content where active isEqualTo true where end isGr
  • 启用/禁用硬件锁定消除

    我使用的是 glibc 2 24 版本 它包含用于使用事务同步扩展 例如 xbegin 和 xend 实现 pthread mutex lock 的锁省略路径 硬件应该支持锁省略hle我认为CPU标志是为了硬件锁消除 我使用的处理器是采用
  • 使用 pandas 数据框进行线性回归

    我在 pandas 中有一个数据框 我用它来生成散点图 并且想要包含该图的回归线 现在我正在尝试用 polyfit 来做到这一点 这是我的代码 import pandas as pd import matplotlib import mat
  • 带有命名参数的 php sqlsrv_query 存储过程

    我使用 php 5 4 和 sqlsrv 扩展 我试图调用这个示例存储过程 NorthWind 数据库 create PROCEDURE dbo GetCategories CategoryID int null AS SELECT fro