Php 为什么Zend Framework(Zend_Db_表)拒绝这个SQL查询?
我正在处理两个表(Php 为什么Zend Framework(Zend_Db_表)拒绝这个SQL查询?,php,mysql,zend-framework,Php,Mysql,Zend Framework,我正在处理两个表(url和companys)的简单JOIN)。我正在使用此查询调用: print $this->_db->select()->from(array('u' => 'urls'), array('id', 'url', 'company_id')) ->join(array('c' => 'companies'),
url
和companys
)的简单JOIN
)。我正在使用此查询调用:
print $this->_db->select()->from(array('u' => 'urls'),
array('id', 'url', 'company_id'))
->join(array('c' => 'companies'),
'u.company_id = c.id');
这将发出以下查询:
SELECT `u`.`id`, `u`.`url`, `u`.`company_id`, `c`.* FROM `urls` AS `u` INNER JOIN `companies` AS `c` ON u.company_id = c.id
现在,我希望c.*
不会真正出现,但不管怎样都没关系。ZF死于此错误:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"
但我可以在MySQL CLI中完美地运行该查询。你知道如何修复这个查询吗?我刚刚在针对ZF 1.10和MySQL 5.1的测试脚本中尝试了这段代码,效果很好 您使用什么用户/密码连接到数据库?它显示“或访问冲突”,因此我将测试您的db用户名是否具有正确的权限。尝试使用完全相同的用户/密码和连接方法在MySQL CLI中进行连接(因为权限可能因客户端主机而异,即使是相同的用户/密码) 看 顺便说一句,通过将列的空数组作为第三个参数传递给
join()
,可以省略c.*
列:
检查“公司”表中是否有保留关键字(字段)。
->join(array('c' => 'companies'), 'u.company_id = c.id', array());