将一个名称值对添加到joomla的已发布数据中以供使用并插入到DB中

时间:2011-04-20 16:37:24

标签: php sql joomla

我正在尝试使用Joomla框架在主内容表中创建一个。[http://docs.joomla.org/How_to_use_the_JTable_class]这样可以正常工作,除了一些数据来自发布的变量而一些来自逻辑在文件上传之前发生的事情(存储jpg的随机图像名称)

$数据=安培; JRequest ::得到( '后');

这需要引用已发布的值,我想添加到此数组或对象我的字段。我的代码创建了新记录但列图像没有插入我的字符串。

我正在尝试做$data=&JRequest::get('post'); $newdata=(array)$data; array_push($newdata,"images"=>"Dog");

之类的事情

我制作newdata,因为数据是对已发布变量的参考,我怀疑不会允许我在$ data中添加值。 我是一个闪光的人通常不是一个PHP,我的知识让我在这里。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

对,第一件事:

$data=&JRequest::get('post');

$ data是一个数组,你不必抛出它。要按照注释中的描述向数组中添加另一个元素,请执行以下操作:

$data['images'] = 'cats';

如果您使用普通的SQL来执行插入操作,那么您可以执行以下操作来获取最后插入的ID,例如:您刚刚插入的行的ID:

$db = $this->getDBO();
$query = 'Some sql';
$db->setQuery($query);
if (!$db->query()) {
  JError::raiseWarning(100, 'Insert failed - '.$db->getErrorMsg());
}
$id = $db->insertid();

如果您正在使用Joomla进行开发,我建议您使用提供给您的db函数而不是mysql_insert_id();

<强> [编辑]

如果您想使用商店,那么您可以获得最后插入的ID:

$row->bind($data);
$row->check();
$row->store();
$lastId = $row->id;