如果没有数据库前缀,Joomla插入不起作用

时间:2016-07-04 15:19:51

标签: php database model insert joomla3.0

我试图在Joomla中为我的数据库添加一些价值

   $db = JFactory::getDbo();
   $query = $db->getQuery(true);
   // not working
   $query = "INSERT INTO `#__devprofile` (`name`) VALUES ('bnar')";
   $db->setQuery($query);
   echo "execute";
   $db->execute();

但是当我将db前缀放在我的insert语句前面时,一切都按预期工作

$query = "INSERT INTO `hhygd_devprofile` (`name`) VALUES ('bar')";

我在这里缺少什么?

提前致谢

*更新*

问题是我有时前重新安装了joomla,所以在configuration.php中设置了错误的数据库前缀,但现在它就像魅力一样

* *

1 个答案:

答案 0 :(得分:2)

你可能在joomla中有魔术引号gpc off。 joomla安装的要求。但是您可以将代码更改为更好的joomla格式

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array('name');
$values = array($db->quote('bnar'));
$query
    ->insert($db->quoteName('#__devprofile'))
    ->columns($db->quoteName($columns))
    ->values(implode(',', $values));
$db->setQuery($query);
$db->execute();