【发布时间】:2014-05-19 14:33:54
【问题描述】:
我有一个问题,我的 PHP sqlsrv UPDATE 语句运行并且不返回任何错误,但数据库中没有任何变化,并且该行实际上没有更新。是否有什么我遗漏的东西可以让这个查询看起来成功运行但不更新行?
我已检查更新语句是否在 SQL Server Management Studio 中运行并更新了行。
$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));
}
【问题讨论】:
-
你的 where 子句可能没有匹配的行吗?在调用
sqlsrv_execute后尝试sqlsrv_rows_affected($visitClose),看看有多少行受到UPDATE语句的影响。 -
你知道你有一个记录在哪里
VisitID='3679061'? (没有错别字,没有不匹配的数据类型?) -
另外,将 db 和 schema 名称添加到语句中的对象中,例如 MAIN.dbo.tblvisit 等。
-
@JonathanAmend 1 行受影响,但数据库中仍然没有更新
-
有没有机会你在某个地方打电话给
sqlsrv_begin_transaction却忘了打电话给sqlsrv_commit?
标签: php sql sql-server sqlsrv