mysql - Joomla - 使用单个查询插入多行

标签 mysql joomla

此时此刻,我想知道如何将两条记录插入数据库。两者几乎相同,只是只有一列值发生变化。

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);

    $columns = array('col1','col2', 'col3', 'col4', 'col5');


    $values = array(
        $db->quote(A),  
        $db->quote(x1),
        $db->quote(x2),
        $db->quote(x3),
        $db->quote(x4)
    );

    $values = array(
        $db->quote(B),  
        $db->quote(x1),
        $db->quote(x2),
        $db->quote(x3),
        $db->quote(x4)
    );
    ...

如您所见,只有第一个值发生变化。有一些优雅的方法可以做到这一点吗?

最佳答案

您的代码似乎不完整,因为它没有将您的值分配给查询。

试试这个。它显示了如何将 $foo 的内容添加到表 #__mytable 中的 myColumn 列。

$query->insert($db->quoteName('#__mytable'))
      ->columns('myColumn');
      ->values(implode(',', array(
            $db->quote($foo)
        )));

$query->execute();

对于多个值,这会有所帮助:

foreach($myValues as $myValue) {
    $query->values(implode(',', array(
        $db->quote($myValue),
    )));
}

虽然我的示例中只有一个值,但如果需要,可以添加多个列。只需扩展 columns() 和 value() 方法即可。

关于mysql - Joomla - 使用单个查询插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42385248/

相关文章:

mysql - 我的.cnf : Improve speed of adding new columns and indexes in large MySQL tables

mysql - 如何使用 MySQL 删除一列中所有重复的行?

php - 将 Joomla 网站迁移到 Docker : Do I base my image off PHP or Joomla

html - Joomla 导航 CSS

php - 优化小型 MySQL 连接查询

php - 在数组中查找最后一个非零值

c# - 如何在 Entity Framework 中将mysql中的char列类型作为字符串获取

php - Joomla后端禁用我的组件中的错误报告

css - Logo 在移动环境中消失

php - Joomla 使用插入到单独的数据库表中