Magento:如何直接从Magento数据库中读取

时间:2013-12-26 23:07:32

标签: php magento zend-framework

我试图通过一个如下所示的自定义脚本直接从Magento数据库中读取:

require_once 'app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$conn = Mage::getSingleton('core/resource')->getConnection('core_read');
echo var_dump($conn);

function getAitocAttr() {
    $test = $conn->fetchAll("SELECT * FROM customer_entity");
    var_dump($test);
}

getAitocAttr();

运行此脚本时没有显示任何内容。我究竟做错了什么?我收到的错误是:

Fatal error: Call to a member function fetchAll() on a non-object 

由于

2 个答案:

答案 0 :(得分:3)

查看您的错误消息

  

致命错误:在非对象

上调用成员函数fetchAll()

PHP抱怨在非对象上对fetchAll进行方法调用。查看您的代码,您拨打fetchAll的唯一地点就在这里。

function getAitocAttr() {
    $test = $conn->fetchAll("SELECT * FROM customer_entity");
    var_dump($test);
}

getAitocAttr函数中,没有定义$conn变量。当你说

$conn = Mage::getSingleton('core/resource')->getConnection('core_read');

您已在$conn功能的范围内定义了getAitocAttr 。您需要在$conn内定义getAitocAttr,或将$conn声明为getAitocAttr内的全局,以使其正常工作。

答案 1 :(得分:0)

我不确定你的脚本究竟是什么问题。它看起来不错但是我对此问题略有不同,它对我有用。

require_once 'app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$conn = Mage::getSingleton('core/resource')->getConnection('core_read');
echo var_dump($conn);

function getAitocAttr()
{
    $sql = "SELECT * FROM customer_entity";
    $result = $conn->query($sql);
    echo "<pre>";
    while ($row = $readresult->fetch()) {
        print_r($row);
    }
}

getAitocAttr();