基本上,我需要使用 PHP 从 SQL Server 2005 中获取一些数据。
之前我们使用了mssql_*
函数,但是由于各种服务器问题,我们现在只能使用odbc_*
函数。
该表有各种列,其名称中有空格,在建议之前....不,我无法更改它们,因为这是另一种语言的完全独立的软件,它会破坏它,我只是得到统计数据其中。
Anywho,我以前一直通过将它们的名称放在方括号中来访问这些列,例如 [column name] 并且它在mssql_*
函数下运行良好,但是当我这样做时:
$sql = "select top 1 [assessment name] as AssessmentName from bksb_Assessments";
$result = odbc_exec($db, $sql);
while($row = odbc_fetch_array($result))
{
var_dump($row);
}
它将结果打印为:
'评估名称' => 字符串'数学 E3 诊断'(长度 = 25)
所以你可以看到它完全忽略了我给它的别名,仍然称它为[评估名称]。
但是,如果我在 SQL Server Management Studio Express 中运行完全相同的东西,它可以正常工作并使用别名。
我尝试了各种不同的组合,例如引用别名、引用列、不同的括号等……但到目前为止还没有运气。
这不是一个大问题,因为我可以更改我的脚本用于在结果数组而不是别名中查找“评估名称”的内容,但我无法弄清楚为什么会发生这种情况,这有点烦人。 ..
干杯! :)
编辑:
实际上我不认为方括号有什么不同,只是试图通过 php odbc 对任何列进行别名处理,但是我仍然可以做类似 CAST(whatever) AS 'alias' 之类的事情,而且效果很好......只是没有选择一列作为别名......?:/