为了账号安全,请及时绑定邮箱和手机立即绑定

sqlsrv_query , php 传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流

sqlsrv_query , php 传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流

PHP
慕尼黑的夜晚无繁华 2023-03-04 16:06:22
当我尝试使用 PHP 更新 SQL Server 中的数据时出现错误。这是PHP代码:$sql = "UPDATE Warehouse SET Items = CAST( ? AS varbinary(1920)) WHERE AccountID = 'shono'";$params = array($vip_cat);$stmt = sqlsrv_query( $conn_ms, $sql, $params);if( $stmt === false ) { die( print_r( sqlsrv_errors(), true));}else{  echo 'ok';}这是我的错误:无效值的一个示例是标度大于精度的数字类型数据。) )我尝试了什么:$sql = "UPDATE Warehouse SET Items = CAST( (?) AS varbinary(1920)) WHERE AccountID = 'shono'";和:$sql = "UPDATE Warehouse SET Items = CAST( $vip_cat AS varbinary(1920)),WarNum = (?) WHERE AccountID = 'shono'";$params = array(1);
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

这是问题所在


$sql = "UPDATE Warehouse SET Items = CAST( **?** AS varbinary(1920)) WHERE AccountID = 'shono'";

**$params = array($vip_cat);**


$stmt = sqlsrv_query( $conn_ms, $sql, **$params**);

我们只需要从 $stmt = sqlsrv_query( $conn_ms, $sql, $params );中删除 $params 我们会得到这样的正确代码


$stmt = sqlsrv_query( $conn_ms, $sql);

此外,这里将是 SQL 的正确命令


UPDATE Warehouse SET Items = CAST(

0x00..

AS varbinary(1920)) WHERE AccountID = 'shono'


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信