【发布时间】:2015-05-09 11:59:29
【问题描述】:
我在 2 小时后一直在尝试解决我的问题,但我仍然没有任何解决方案。也许有人会看到我做错了什么。 我要做的是使用 zend 框架从数据库中选择行。 这是查询我要选择的内容:
SELECT * FROM `products_stock` JOIN `options_stock_values` ON `options_stock_values`.`stock_id` = `products_stock`.`stock_id` WHERE `product_id` = 119
这是一个简单的 JOIN,在 phpmyadmin 中完美运行,但我的 php 代码无法以我想要的方式选择它。
$select = $this->entity("ProductsStock")->select();
$select->join('options_stock_values','options_stock_values.stock_id = products_stock.stock_id',array());
$select->where("product_id = ?", $this->stock->product_id);
$select->where("extended = ?", 1);
$rowset = $this->entity("ProductsStock")->fetchAll($select);
return $rowset;
这就是我尝试从数据库中选择行的方式。我从可以正常工作的实体中选择 ProductsStock。但是当我在查询中添加 JOIN 函数时,它甚至会忽略 WHERE 语句并给我多行期望一行。
例如 使用没有 JOIN 的 db 查询,我得到两行(我期待它们),但是当我使用 options_stock_values 表添加 JOIN 时,它给了我类似 20 行的东西,没有来自 sencond 表的列。
它只返回第一个表 (ProductsStock) 中的 20 行,而不是 ProductsStock 中的两行与 OptionsStockValues 和第二个表中的列连接。
我认为我的 php 代码看起来不错,但也许我做错了什么?任何人都可以帮助我并给我一些小建议吗?
【问题讨论】:
-
能否介绍一下zend框架的版本?
标签: php mysql zend-framework