0

在 Joomla 2.5 和 3.0 中,我能够将数据库结果集作为数组获取。是否可以将此数组转换为 sql 插入语句或 .sql 文件,以便将其插入另一个数据库中相同结构的另一个表中?

4

1 回答 1

0

是的,你可以,检查下面的代码。您可以使用 Joomla 核心功能来完成这项工作。

首先初始化一个数据集,如下所示。

function initializesData()
    {
        $this->_data->id        = 0;
        $this->_data->field1    = '';        
        $this->_data->field2    = '';
        $this->_data->field3    = 1;

        return $this->_data;
    }

然后将该行加载到数据集中,如下所示。

function &getOne($id='')
    {
        $db =& JFactory::getDBO();       
        $query  = $db->getQuery(true);
        $query->select('*');
        $query->from($db->nameQuote(TABLE_PREFIX.'table_name'));
        $query->where($db->nameQuote('id').'='.$db->Quote($id));       
        $db->setQuery($query);      
        $this->_data = $db->loadObject();

        if ($this->_data)
        {      
            return $this->_data;
        }

    }

然后使用 Joomla 表插入行。

 function store()
    {  
       //Get post data 
       $this->_data = $this->getOne($id);


       $row = &$this->getTable('table_name');


       if (!$row->bind($this->_data))
       {
          $this->setError($this->_db->getErrorMsg());          
          return false;
       } 


       if (!$row->check())
       {         
         $this->setError($this->_db->getErrorMsg());
         return false;
       } 


       if (!$row->store())
       {
         $this->setError($this->_db->getErrorMsg());
         return false;
       }      
       $new_id = $this->_db->insertId();

       if($new_id > 0)
            $this->_data->id = $new_id;

       return true;
    }

以上所有功能都在模型中。希望您可以在控制器中管理函数调用。如果你想做多个插入循环函数调用。如果您有任何问题,请告诉我

于 2012-11-14T06:21:30.673 回答