我正在使用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的新手,这让我很难过。任何有用的指示(或让我知道这里有一个明显的错误),将不胜感激。
谢谢!
答案 0 :(得分:3)
感谢您的快速回复,但我发现了这个问题。与PDO完全无关,它是数据库中第二个表的权限。 SQL Server查询分析器的测试重新调整了结果,因为我对新表有权限;我用来用PDO查询表的用户没有...
一个用于'再次在Stack-Overflow上发布之前检查此'笔记本...
答案 1 :(得分:2)
生命终极问题的答案宇宙和PDO问题是
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
连接后立即设置 它将重新发送数据库
中发生的任何错误