Magento SQL语句未返回预期结果

时间:2013-12-11 08:25:06

标签: php mysql magento

我正在运行Magento 1.7.0.2:

我正在尝试使用PHP& amp;来检索自定义表中的所有列。 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 *

声明,通常完美无缺。巧合的是,如果我尝试指定我有兴趣使用的列名:

Select id, name, sku, custom_value

它只返回第一个值,所以我先指定的列是它返回的值。

如果我尝试在PHPMyAdmin中运行相同的语句,它会完美地返回预期的结果。有任何想法吗?

2 个答案:

答案 0 :(得分:4)

这就是fetchOne的作用。它获得了第一张唱片。注意函数名称中的One 尝试使用fetchAll

答案 1 :(得分:0)

原来我错误地认为直接SQL语句fetchOne的功能确实只从语句中获取一个列结果,fetchRow查询将返回该表中的每一列。