在 Joomla 2.5 和 3.0 中,我能够将数据库结果集作为数组获取。是否可以将此数组转换为 sql 插入语句或 .sql 文件,以便将其插入另一个数据库中相同结构的另一个表中?
问问题
328 次
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 回答