我正在运行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中运行相同的语句,它会完美地返回预期的结果。有任何想法吗?
答案 0 :(得分:4)
这就是fetchOne
的作用。它获得了第一张唱片。注意函数名称中的One
尝试使用fetchAll
。
答案 1 :(得分:0)
原来我错误地认为直接SQL语句fetchOne
的功能确实只从语句中获取一个列结果,fetchRow
查询将返回该表中的每一列。