2013-08-29 72 views
2

我有magento 1.7.0.2,现在我尝试添加一些数据到数据库。 但我得到一个错误:将数据添加到MySQL的致命错误 - Magento

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 
+0

这是文件的开始? – Anigel

+0

是的,是的。第3行是'$ setup = new Mage_Eav_Model_Entity_Setup('core_setup');' – Ronny

回答

0

的问题可能是类没有法师在目录中找到的只是仔细包括mage.php 将确保解决您的问题。

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

使用此。它为我工作。

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

+0

嗨,我在第2行添加了这个。但仍然有同样的错误。 – Ronny

+0

请检查其他功能是否正常工作?喜欢模型/或布局功能 – liyakat

+0

嗨,你能指定一条线给我吗?我不是那种代码。 (我可以读它,但不是programm它) – Ronny

1

尝试使用

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

而不是直接调用的。这应该工作。

相关问题