4

我正在尝试通过 PHP 运行一个非常简单的 MSSQL 更新语句,但我收到一条错误消息:*“An invalid parameter was passed to sqlsrv_query.”*

这是我正在使用的连接类,最相关的是查询功能:

function query($query) {
    $result = sqlsrv_query($query) or die( print_r( sqlsrv_errors(), true));
}

最后,这是我用来尝试执行语句的代码:

$db = new mssqlClass();
$conn = $db->connect();

$SQL = "UPDATE table SET Title = 'Test' where ID = 1"
$SQL = $db->query($SQL);

如果有人有任何建议,我将不胜感激,我想这是连接类的问题,但我不确定。谢谢!

(编辑)为了在此处发布而尝试编辑所有内容,我不知何故错过了我的陈述中的“哪里”,啊!对不起。不用说查询很好,当复制到 SQL Server Studio Manager 中时执行没有任何问题。干杯

4

5 回答 5

5

我不喜欢回答我自己的问题,但由于我一开始问这个问题时搞得一团糟,我希望这对任何从谷歌看到这个问题的人都有帮助。

与 mssql_query 不同,较新的 sqlsrv_query 函数需要将连接参数作为第一个变量传入,如下所示:

$result = sqlsrv_query($this->connection, $query) or die( print_r( sqlsrv_errors(), true));
于 2012-05-25T14:33:48.820 回答
0

我相信您缺少 WHERE 关键字。是不是应该说:

UPDATE table SET Title = 'Test' WHERE ID = 1

?

于 2012-05-25T13:30:14.727 回答
0

尝试

 UPDATE table SET Title = 'Test', ID = 1

你错过了逗号“,”

于 2012-05-25T13:30:37.630 回答
0

我认为您正在尝试其中任何一个

UPDATE table SET Title = 'Test' WHERE ID = 1

或者

UPDATE table SET Title = 'Test', ID = 1
于 2012-05-25T13:32:41.793 回答
0

这是一个旧的解决方案:

$result = sqlsrv_query($this->connection, $query) or die( print_r( sqlsrv_errors(), true));

但两年后救了我几英里!

于 2014-02-15T09:07:09.600 回答