为什么我总是收到此错误:
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
从查询字符串中删除括号/括号,使其:
$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
消息。
感谢您的回复,我只想分享我对自己问题的发现:/
似乎如果我们将 ORDER BY 作为子查询,查询工作正常。 像这样:
SELECT * FROM (
SELECT a,b,c,d,e FROM tableA ORDER BY fieldA ASC
) X
我不知道这是否是一个正确的答案,但这个棘手的解决方案对我有帮助。我仍然愿意了解更多信息/回答你:)