MSSQL和PHP:“将无效参数传递给sqlsrv_query。”

时间:2012-05-25 13:28:42

标签: php sql-server object sql-update

我正在尝试通过PHP运行一个非常简单的MSSQL更新语句,但是我收到一条错误消息“*将无效参数传递给sqlsrv_query。”*

这是我正在使用的connection class,最相关的是查询功能:

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时执行没有任何问题。干杯

5 个答案:

答案 0 :(得分:4)

我不喜欢回答我自己的问题,但是因为我最初提出这样一个问题,所以我希望这对谷歌看到这个问题的人有所帮助。

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

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

答案 1 :(得分:0)

我相信你错过了WHERE关键字。这是假设:

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

答案 2 :(得分:0)

尝试

 UPDATE table SET Title = 'Test', ID = 1
你错过了逗号“,”

答案 3 :(得分:0)

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

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

OR

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

答案 4 :(得分:0)

这是一个旧解决方案:

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

但是后来拯救了我两英里!