2

phpmyadmin では機能するが Zend_db では機能しないクエリに問題があります。いくつかの結合を持つ SQL ステートメントでクエリについて読むことができます

私はこれらのテーブルを持っています

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);

PDO アダプターのボートと mysqli アダプターを使用して、このクエリを実行しようとしました。mysqli アダプターでこのエラーが発生します。

Mysqli prepare error: Operand should contain 1 column(s)

私はそれについてググったところ、Zend_Dbのバグである可能性があることがわかりましたが、SQLの知識が限られているため、何か間違ったことをしているのか、それとも本当にバグなのかわかりません。これを理解するのを手伝ってもらえますか?タンク君。

4

1 に答える 1