使用joomla插件,我试图从“ #__users”表中获取一些用户信息,并在创建用户时将其插入另一个表“ #__new_table”中。

代码如下

function onUserAfterSave( $user, $isnew, $success, $msg ) {
    if ($isnew && $success) {
      $db = &JFactory::getDBO();
      $db->setQuery( 'INSERT INTO #__new_table (user_id) VALUES ('.$user['id'].')' );
      $db->query();
    }
  }


上面的作品和'id'被复制到新表,并显示在'user_id'行中。但是,如果我尝试以下操作:

function onUserAfterSave( $user, $isnew, $success, $msg ) {
    if ($isnew && $success) {
      $db = &JFactory::getDBO();
      $db->setQuery( 'INSERT INTO #__new_table (name) VALUES ('.$user['username'].')' );
      $db->query();
    }
  }


然后,即使两个表中都存在“名称”和“用户名”字段,此操作也不起作用。

是否有更好的方法为joomla 2.5编写此函数。同样在以上示例中,我一次只获取一个值。如果我试图一次从“ #__users”获取一些值以插入到“ #__new_table”中的几个字段中,那么我将如何更改上述功能。

谢谢。

最佳答案

您应该quote用户名值。

function onUserAfterSave( $user, $isnew, $success, $msg ) {
    if ($isnew && $success) {
      $db = &JFactory::getDBO();
      $db->setQuery( 'INSERT INTO #__new_table (name) VALUES ('.$db->quote($user['username']).')' );
      $db->query();
    }
  }

关于mysql - joomla 2.5查询从一个表中选择插入另一个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28573315/

10-14 13:04
查看更多