为什么我总是会收到此错误:
Array to string conversion in ..
每次我在PHP中使用ORDER BY子句 - SQLSRV。 (我是SQLSRV的新手,所以如果您认为有必要,请编辑我的问题)
甚至是简单的查询,例如
SELECT * FROM tableA ORDER BY fieldA ASC
也导致错误。
如果我按'删除'顺序,一切正常。 下面是我的php sqlsrv脚本:
$conn = "some db setting";
$query= "(SELECT * FROM tableA ORDER BY fieldA ASC)";
$queryparams = array("");
$querun = sqlsrv_query($conn,$query, $queryparams);
我使用的版本:
php 5.4.31
SQL Server 2008
编辑以获取更多信息: 如果我直接从SQL STUDIO
运行,查询工作正常答案 0 :(得分:0)
从查询字符串中删除括号/括号,使其成为:
$query= "SELECT * FROM tableA ORDER BY fieldA ASC";
在查询字符串中使用括号/括号会导致SQL中出现语法错误。您的查询返回false
一个包含错误消息的数组,如下所示:
Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 156 [code] => 156 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near the keyword 'ORDER'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near the keyword 'ORDER'. ) )
我猜你正试图回应一个数组,因此发出了Array to String conversion
消息。
答案 1 :(得分:0)
感谢您的回复, 我只想分享我对自己问题的发现:/
似乎如果我们将ORDER BY作为子查询,查询工作正常。像这样的东西:
SELECT * FROM (
SELECT a,b,c,d,e FROM tableA ORDER BY fieldA ASC
) X
我不知道这是否是一个正确的答案,但这个棘手的解决方案对我有帮助。 我仍然愿意接受更多信息/回答你:)