我運行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