Php sqlsrv UPDATE语句运行但不运行';t更新数据库

Php sqlsrv UPDATE语句运行但不运行';t更新数据库,php,sql,sql-server,sqlsrv,Php,Sql,Sql Server,Sqlsrv,我遇到了一个问题,我的PHP sqlsrv UPDATE语句运行时不会返回任何错误,但数据库中的任何内容都不会更改,并且行实际上没有更新。是否缺少允许此查询成功运行但不更新行的内容 我已经检查了update语句是否在SQLServerManagementStudio中运行,并更新了行 $visitquery = "UPDATE tblVisit SET CalledInBy='WINNER' WHERE VisitID='3679061'";

我遇到了一个问题,我的PHP sqlsrv UPDATE语句运行时不会返回任何错误,但数据库中的任何内容都不会更改,并且行实际上没有更新。是否缺少允许此查询成功运行但不更新行的内容

我已经检查了update语句是否在SQLServerManagementStudio中运行,并更新了行

$visitquery = "UPDATE tblVisit SET CalledInBy='WINNER' WHERE VisitID='3679061'";            

                    $visitClose = sqlsrv_prepare($connect,$visitquery);
                    if( sqlsrv_execute( $visitClose))
                        {
                              echo "Statement executed.\n <br />";
                        }
                        else
                        {
                             echo "Error in executing statement.\n";
                             die( print_r( sqlsrv_errors(), true));
                        } 
$visitquery=“UPDATE tblVisit SET calledby='WINNER'WHERE VisitID='3679061'”;
$visitClose=sqlsrv_prepare($connect,$visitquery);
if(sqlsrv_执行($visitClose))
{
echo“已执行语句。\n
”; } 其他的 { echo“执行语句时出错。\n”; 模具(打印错误(sqlsrv_errors(),true)); }
确保脚本具有访问正确数据库的权限,否则表将不会发生任何变化

因此,首先,建立到数据库的连接,然后指定包含表的数据库

在设置中,在代码上方添加此行

$connect = sqlsrv_connect(server format goes here,array("Database"=>name of database containing tblVisit in quotes goes here,"UID"=>username to access database goes here,"PWD"=>password to access database goes here));
对于每个值,请使用引号将其括起来,因为它们是字符串

这里有关于如何生成代码的更多信息:

谢谢@JonathanAmend

sqlsrv\u begin\u事务已打开,但未调用
sqlsrv\u commit


您的where子句是否没有匹配的行?调用
sqlsrv\u execute
后,尝试
sqlsrv\u rows\u impacted($visitClose)
,查看有多少行受到
UPDATE
语句的影响。您知道您有一条记录,其中
VisitID
=
'3679061'
?(没有输入错误,没有不匹配的数据类型?)此外,将db和架构名称添加到语句中的对象中,如MAIN.dbo.tblvisit或类似的。@JonathanAmend 1行受影响,但在数据库中仍然没有更新您在某处调用
sqlsrv\u begin\u transaction
时忘记调用
sqlsrv\u commit