我有一个在phpmyadmin中工作但不在Zend_db中工作的查询有问题。您可以在SQL statement with several joinsZend_Db查询Mysqli准备错误:操作数应该包含1列
阅读有关查询我有这些表
Post
ID
entry
Category
ID
name
CategoryBinding
ID
postID
categoryID
这是我的PHP代码:
class Blog_Model_DbTable_Posts extends Zend_Db_Table
{
protected $_name = 'Posts';
public function getByCategoryId($id)
{
$query =
"SELECT *
FROM `Post` AS `p`
LEFT JOIN `CategoryBinding` AS `cb` ON p.ID = cb.postID
LEFT JOIN `Category` AS `c` ON cb.categoryID = c.ID
INNER JOIN `Post` AS `p2` ON p.id = p2.id
WHERE p.id in
(
SELECT p2.id
FROM `Post` as `p2`
LEFT JOIN `CategoryBinding` AS `cb` ON p2.ID = cb.postID
LEFT JOIN `Category` AS `c` ON cb.categoryID = c.ID
WHERE c.id = 1
)
"
return parent::fetchAll($query);
我试图与boath的PDO收养并运行此查询与mysqli采用者。我在mysqli收养者身上发现了这个错误。
Mysqli prepare error: Operand should contain 1 column(s)
我用Google搜索一下,发现它可能是在Zend_Db的一个bug,但因为我的SQL知识是比较有限的,我不知道如果我做错了什么,如果它确实是一个错误。你能帮我解释一下吗? 坦克你。
您使用Zend的哪个版本?快速搜索表明,可能相关的错误确实存在于1.5 - 1.8 http://framework.zend.com/issues/browse/ZF-3311 – Brandon 2009-08-13 17:00:36
我正在使用1.9(最新版本) – unkownt 2009-08-13 17:01:33