4

我正在使用 PDO 连接到 MS SQL 2000 数据库,并希望在同一 SQL 2000 服务器上创建与另一个数据库的左连接。此查询在 MSSQL 查询分析器上运行时返回正确的结果,并按我的预期从两个数据库中提取数据。

select t_job.pk_Job, t_JobSummary.Description, t_CarChecks.YesNo
from t_job
left join t_JobSummary on pk_Job=t_JobSummary.fk_Job
left join DATABASE2.dbo.t_CarChecks t_CarChecks on pk_Job=t_CarChecks.fk_Job
where t_JobSummary.Description_vc LIKE \'Cars %\'

但是,当我从网页使用相同的查询时,没有返回任何结果。查询从网页开始工作,直到我将 LEFT JOIN 添加到第二个数据库,如果我如下所示注释掉该数据库,查询将返回结果,因此我可以确定(?!)问题出在 SQL陈述。

select t_job.pk_Job, t_JobSummary.Description --, t_CarChecks.YesNo
from t_job
left join t_JobSummary on pk_Job=t_JobSummary.fk_Job
--left join DATABASE2.dbo.t_CarChecks t_CarChecks on pk_Job=t_CarChecks.fk_Job
where t_JobSummary.Description_vc LIKE \'Cars %\'

在这里和其他网站上阅读后,我为第二个数据库使用了别名,但我仍然没有得到任何结果。

我是 PDO 的新手,这让我很困惑。任何有用的指示(或让我知道这里有一个明显的错误),将不胜感激。

谢谢!

4

2 回答 2

3

感谢您的快速响应,但是,我发现了问题。与PDO完全无关,是数据库中第二张表的权限。来自 SQL Server 查询分析器的测试重新调整了结果,因为我对新表具有权限;我用来用 PDO 查询表的用户没有...

一个用于“再次在 Stack-Overflow 上发布之前检查此内容”笔记本...

于 2013-01-28T17:35:02.357 回答
2

生命宇宙和 PDO 问题的终极问题的答案是

$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

连接后立即设置。
它会告诉你数据库中发生的任何错误

于 2013-01-28T18:15:41.417 回答