将数据添加到MySQL时出现致命错误-Magento


Adding data to MySQL with Fatal Error - Magento

我有magento 1.7.0.2,现在我尝试向数据库添加一些数据。但是我得到一个错误:

Notice: Undefined variable: this in /var/www/vhosts/xxx/mysql4-install-0.1.0.php on line 10 Fatal error: Class 'Mage_Eav_Model_Entity_Setup' not found in /var/www/vhosts/xxx/mysql4-install-0.1.0.php on line 3

以下是php文件中试图向数据库添加一些数据的部分:

<?php
$installer = $this;
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
/**
 * Adding Different Attributes
 */
// adding attribute group
$setup->addAttributeGroup('catalog_product', 'Default', 'Video', 1000);
$setup->addAttribute('catalog_product', 'videobox', array(
    'group'         => 'Video',
    'input'         => 'textarea',
    'type'          => 'text',
    'label'         => 'Youtube video url',
    'backend'       => '',
    'visible'       => 1,
    'required'      => 0,
    'user_defined' => 1,
    'searchable' => 0,
    'filterable' => 0,
    'comparable'    => 0,
    'visible_on_front' => 1,
    'visible_in_advanced_search'  => 0,
    'is_html_allowed_on_front' => 0,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));

如何解决这个问题?提前感谢!

更新:这些文件有效。我添加了一段额外的代码,看看它是否有效:

<?php
require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app(); // Change default to whatever store you want to run
echo "it's worked!";
?>

这个错误现在已经减少了一行。

Fatal error: Call to a member function startSetup() on a non-object in /var/www/vhosts/xxx/mysql4-install-0.1.0.php on line 4

尝试使用

$setup = Mage::getModel("eav/entity_setup", "core_setup");

而不是直接调用。这应该行得通。

问题可能是在mage目录中找不到class,只需小心地包含mage.php一定能解决你的问题。

$mageFilename = $_SERVER['DOCUMENT_ROOT'] . '/magento/app/Mage.php';

使用这个。它对我有效。

DOCUMENT_ROOT是一个服务器变量,表示代码所在的基本目录。