Php 向发布的数据添加一个名称-值对,以便joomla使用并插入到数据库中

Php 向发布的数据添加一个名称-值对,以便joomla使用并插入到数据库中,php,sql,joomla,Php,Sql,Joomla,我试图使用Joomla框架在主内容表中创建一个[http://docs.joomla.org/How_to_use_the_JTable_class]这可以很好地工作,除了一些数据来自发布的变量,还有一些来自上传文件之前发生的逻辑(存储jpg的随机图像名) $data=&JRequest::get('post') 这将引用发布的值,我想将我的字段添加到此数组或对象。我的代码生成了新记录,但是列图像没有插入我的字符串 我试图做一些类似于$data=&JRequest::get('post'); $

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

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

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

我试图做一些类似于
$data=&JRequest::get('post');
$newdata=(数组)$data;
数组推送($newdata,“images”=>“Dog”)

我创建新数据,因为数据是对发布变量的引用,因此我怀疑它不允许我向$data添加值。 我是一个flash爱好者,通常不是php,我的知识让我失望

感谢您的帮助

好的,首先:

$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()

[编辑]

如果要使用store,则可以获取最后插入的id,如下所示:

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

从$data=&JRequest::get('post');,您得到了什么?从&JRequest::get('post')返回;数组不是用于?$data['images']=“狗”;这似乎对我有用,谢谢你的帮助。我想这是一个数组或stdObject不确定。不客气。毕竟我们彼此支持:)得到了带有额外值的数组,它现在仍然没有向数据库添加任何内容,尽管记录已经创建。如果不是针对有用的行$listing\u id=$table->id,我想使用我的普通SQL进行插入;我之所以需要这一行是为了获取id,因为我需要进一步插入到另一个需要引用此表的表中。如果有人知道如何像此方法那样检索当前插入的记录ID号,那么我可以使用常规SQL进行插入。要想拿到身份证,你得去商店。我肯定我做错了。步骤是1将图像上传到服务器并注意路径2使用刚生成的图像路径在“content”表中插入记录3为刚创建的记录插入一个新的记录引用。嗨-我想使用store作为J框架和很多清理器,并进行字段清理等,但它对我来说不起作用。想想看,它也没有提交这个字段,所以它可能确实工作了,现在我已经修复了这个数组,它应该又开始正常了。谢谢你的回答。