当前位置: 首页 > 面试题库 >

通过PHP数组插入多行到MySQL

欧阳飞
2023-03-14
问题内容

我正在使用插入命令通过PHP将大型数据集传递到MySQL表中,并且我想知道是否有可能通过查询而不是将每个值附加到一英里长的字符串的末尾一次插入大约1000行,然后执行它。我正在使用CodeIgniter框架,因此我也可以使用它的功能


问题答案:

INSERT在MySQL中,用多行汇编一条语句要比INSERT每行一条语句快得多。

也就是说,听起来您可能会遇到PHP中的字符串处理问题,这实际上是算法问题,而不是语言问题。基本上,当使用大字符串时,您希望最大程度地减少不必要的复制。首先,这意味着您要避免串联。构建大型字符串(例如一次插入数百行)的最快,最节省内存的方法是利用implode()函数和数组分配。

$sql = array(); 
foreach( $data as $row ) {
    $sql[] = '("'.mysql_real_escape_string($row['text']).'", '.$row['category_id'].')';
}
mysql_query('INSERT INTO table (text, category) VALUES '.implode(',', $sql));

这种方法的优点是,您无需复制和重新复制到目前为止已与每个串联组合的SQL语句。相反,PHP 在语句中执行 一次implode()。这是一个
巨大的 胜利。

如果您有很多列要放在一起,并且一个或多个列很长,则还可以构建一个内部循环以执行相同的操作,并使用implode()将values子句分配给外部数组。



 类似资料:
  • 问题内容: 我有一个php表单,该表单具有已知的列数(例如,顶部直径,底部直径,织物,颜色,数量),但是行数未知,因为用户可以根据需要添加行。 我发现了如何采用每个字段(列)并将其放入各自的数组中。 因此,我最终在HTML中得到的是: 我现在想做的是将所有行和列都放入多维数组,然后将其内容通过电子邮件发送给客户端(最好在格式良好的表中)。我还无法真正理解如何将所有这些输入和选择组合到一个不错的数组

  • 问题内容: 我有一个来自csv的数组,其结构与此类似: 我想将其插入到mysql表中,其中第一个数组的项(名称,年龄,性别)是列标题,而每个后续数组是表中的一行。 有人能建议我做这件事的最好方法,因为我撞墙了,这使我头疼! 问题答案: 以下代码将起作用,但是假定所有嵌套数组的长度都相同,换句话说,每个嵌套数组都包含第一个嵌套数组中定义的所有属性的值。 只要所有其他嵌套数组的长度相同,该解决方案就可

  • 问题内容: 我需要用一个查询插入多行(行数不是常数),所以我需要像这样执行查询: 我知道的唯一方法是 但我想要一些更简单的方法。 问题答案: 我构建了一个程序,该程序将多行插入到位于另一个城市的服务器上。 我发现使用此方法的速度大约是的10倍。就我而言,tup是一个包含约2000行的元组。使用此方法大约花了10秒钟: 使用此方法需要2分钟:

  • 问题内容: 如何使用php将多个数据插入mysql数据库。我尝试使用for循环,但没有运气。 问题答案: 只需在循环中构建查询,然后在循环竞争时执行查询即可 您还会注意到,我将您对数据库连接的包含移到了循环之外。无需重复拨打该电话。 另外,请确保您逃脱了要插入的那些值,或者使用参数化查询来进行插入,以防止SQL注入。

  • 我使用Azure Stream Analytics将Json复制到DocumentDB,并使用upsert用最新数据覆盖文档。这对于我的基础数据来说很好,但我希望能够附加列表数据,因为不幸的是,我一次只能发送一个列表项。 在下面的示例中,文档在id上匹配,并且所有项目都更新了,但我希望“myList”数组随着来自每个文档的“myList”数据(具有相同的id)不断增长。这可能吗?是否有其他方法使用

  • 主要内容:使用 MySQLi 和 PDO 向 MySQL 插入多条数据,实例 (MySQLi - 面向对象),实例 (MySQLi - 面向过程),实例 (PDO),使用预处理语句,实例 (MySQLi 使用预处理语句)使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句。 以下实例向 "MyGuests" 表添加了三条新的记录: 实例 (MySQLi - 面向对象) <?php $servername = "loc