我运行Magento的1.7.0.2:Magento的SQL语句不返回预期的结果
我试图使用PHP & SQL自定义表中检索所有列,但返回的结果是不是我所期待或通常会得到:
$connection = $this->_getConnection('core_read');
$sql = "SELECT * FROM " . $this->_getTableName('my_custom_table_name') . " cped
WHERE cped.id = ?";
$results = $connection->fetchOne($sql, array($id));
print_r($results); //this only prints out a single value
public function _getConnection($type = 'core_read'){
return Mage::getSingleton('core/resource')->getConnection($type);
}
public function _getTableName($tableName){
return Mage::getSingleton('core/resource')->getTableName($tableName);
}
的问题是,这只是返回第一个栏(即在这种情况下,ID),即使我用
Select *
声明,其中U sually工作得很好。巧合的是,如果我尝试使用指定我感兴趣的列名:
Select id, name, sku, custom_value
它只返回第一个值,故取其专栏中,我指定第一个是它返回的值。
如果我尝试在PHPMyAdmin中运行这个相同的语句,它会完美地返回预期的结果。有任何想法吗?
什么是'array($ id)'?你在这里通过什么。 – Roopendra
这个实例中的'$ id'是表的主键,它被'array()'包围,因为通常在那里为'WHERE,ORDER BY'等解析了几个值,尽管在这种情况下它可以被排除在外。 在不使用'array()'的情况下运行它将返回相同的结果。 – Moose
谢谢@moose。这对我来说是新事物。这就是为什么我要求你 – Roopendra