Mic*_*ith 3 php mysql zend-framework
我正在研究一个简单JOIN的两个表(urls和companies).我正在使用此查询调用:
print $this->_db->select()->from(array('u' => 'urls'),
array('id', 'url', 'company_id'))
->join(array('c' => 'companies'),
'u.company_id = c.id');
Run Code Online (Sandbox Code Playgroud)
这是出于这个问题:
SELECT `u`.`id`, `u`.`url`, `u`.`company_id`, `c`.* FROM `urls` AS `u` INNER JOIN `companies` AS `c` ON u.company_id = c.id
Run Code Online (Sandbox Code Playgroud)
现在,我宁愿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"
Run Code Online (Sandbox Code Playgroud)
但我可以在MySQL CLI中完美地运行该查询.任何想法如何解决这个问题?
我只是在针对ZF 1.10和MySQL 5.1的测试脚本中尝试了该代码,它运行正常.
您使用什么用户/密码连接到数据库?它说"或访问冲突",所以我会测试你的db用户名是否具有正确的权限.尝试使用完全相同的用户/密码和连接方法在MySQL CLI中进行连接(因为权限可能因客户端主机而异,即使对于相同的用户/密码也是如此).
请参阅MySQL Zend Framework - SQLSTATE [42000]:语法错误或访问冲突:
顺便说一句,你可以c.*通过传递列的空数组作为第三个参数来省略列join():
->join(array('c' => 'companies'), 'u.company_id = c.id', array());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |