来自用于SQL Server的PHP的Microsoft驱动程序的错误42S02

时间:2010-08-11 10:10:25

标签: php sql sql-server driver

我试图通过PHP使用Microsoft驱动程序for PHP for SQL Server从SQL Sever数据库中提取一些数据。一些表我可以检索正常,但其他表给出以下错误消息:

  

数组([0] =>数组([0] => 42S02 [SQLSTATE] => 42S02 [1] => 208 [代码] => 208 [2] => [微软] [SQL Server Native Client 10.0] [SQL Server]无效的对象名称'xyz $ Permanent Assignments'。[message] => [Microsoft] [SQL Server Native Client 10.0] [SQL Server]无效的对象名称'xyz $ Permanent Assignments' 。))

如果我尝试使用相同的凭据从isql(SELECT * FROM [xyz$Permanent Assignments])运行相同的语句,它可以正常工作,所以我知道该语句是正确的,并且该对象确实存在。

我也尝试过使用版本1和2的MS驱动程序。

代码如下所示,但如果我尝试其他表格就可以了 - 它有点受欢迎。

$tsql = "SELECT * 
         FROM [".$client."\$Permanent Assignments]";

print $tsql;

$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
     echo "Statement executed.";
} 
else 
{
     echo "Error in statement execution.
\n"; die( print_r( sqlsrv_errors(), true)); }

有人有任何想法吗?

由于

1 个答案:

答案 0 :(得分:0)

尝试使用“而不是方括号”来引用表名,如果使用单引号来分隔字符串,则不必将其删除或削减$