gpt4 book ai didi

php - zend框架1 zend_db在不同条件下结果相同

转载 作者:行者123 更新时间:2023-11-29 13:53:01 26 4
gpt4 key购买 nike

我的问题是,当我想使用 zend Framework 1 从数据库读取数据时,即使我使用不同的条件,我也会得到完全相同的结果。
我的名为“maps”的表包含 2 行:

id: 1 date: date1 description: sth1 userid: 30  
id: 2 date: date2 description: sth2 userid: 30

application.ini:

resources.db.params.charset = "utf8"  
resources.db.adapter = pdo_mysql
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password =
resources.db.params.dbname = gallery

在我的 Controller 中:

$gallery = new Gallery_Model_DbTable_Maps();  
$maps = $gallery->getMaps($user_id);
$this->view->datas = array(
'maps' => $maps,
);

在我的模型中:

class Gallery_Model_DbTable_Maps extends Zend_Db_Table_Abstract  
{
protected $_name = 'maps';
public function getMaps($id){
$select = $this->select();
$select->where('userid = ?', $id);
$rows = $this->fetchAll();
return $rows->toArray();
}
}

如果我将“Gallery_Model_DbTable_Maps”中的“$id”替换为 30 以外的值,我总是会得到上面提到的 2 行...如果我改变这个功能...

 public function getMaps($id){  
$dbAdapter = Zend_Db_Table::getDefaultAdapter();
$stmt = $dbAdapter->query('SELECT * FROM maps WHERE userid = 32');
$rows = $this->fetchAll()->toArray();
return $rows;
}

...问题仍然出现,并得到相同的结果。但是如果我在 phpmyadmin 中运行查询,一切都很好

还有一个额外的想法(也许有助于找出问题所在),如果我使用联接,联接的表数据不会出现在结果中(在 zf 结构中),但是如果我运行此查询(包含联接) )在 phpmyadmin 中,一切都很好。

最佳答案

试试这个:

$select = $this->select();  
$select->where('userid = ?', $id);
$rows = $this->fetchAll($select); // rowset

了解更多信息here

如果您使用 Zend_Db_Adapter ,它会像这样:

$dbAdapter = Zend_Db_Table::getDefaultAdapter();
$sql = 'SELECT * FROM maps WHERE userid = ?';
$rows = $dbAdapter->fetchAll($sql, $id); // array

了解更多信息here

关于php - zend框架1 zend_db在不同条件下结果相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16384104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com