Ich habe ein Problem mit einer Abfrage, die in phpmyadmin funktioniert, aber nicht mit Zend_db. Sie können in SQL statement with several joinsZend_Db Query Mysqli Fehler vorbereiten: Operand sollte 1 Spalte (n) enthalten
über die Abfrage las ich diese Tabellen haben
Post
ID
entry
Category
ID
name
CategoryBinding
ID
postID
categoryID
Und das ist mein PHP-Code:
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);
Ich habe versucht, diese Abfrage mit boath die PDO-Adopter zu laufen und mit mysqli Adopter. Ich bekomme diesen Fehler mit dem mysqli Adopter.
Mysqli prepare error: Operand should contain 1 column(s)
Ich habe darüber gegoogelt und herausgefunden, dass es vielleicht ein Fehler in Zend_Db ist, aber da meine SQL-Kenntnisse etwas eingeschränkt ist, ich weiß nicht, ob ich etwas falsch tue, oder wenn es in der Tat ein Fehler ist. Kannst du mir bitte helfen, das herauszufinden? Tank Sie.
Welche Version von Zend verwenden Sie? Eine schnelle Suche zeigt, dass ein Fehler, der verwandt sein könnte, existiert in 1.5 - 1.8 http://framework.zend.com/issues/browse/ZF-3311 – Brandon
Ich benutze 1.9 (die neueste Version) – unkownt