Php sqlsrv UPDATE语句运行但不运行';t更新数据库
我遇到了一个问题,我的PHP sqlsrv UPDATE语句运行时不会返回任何错误,但数据库中的任何内容都不会更改,并且行实际上没有更新。是否缺少允许此查询成功运行但不更新行的内容 我已经检查了update语句是否在SQLServerManagementStudio中运行,并更新了行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'";
$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
?