在循环中插入 sql 查询是好还是坏?

2024-01-03

我有一个用户列表,需要使用 foreach 循环进行迭代,并将数据库表中的每个新行插入到表中。

$data['entity_classid'] = $classid;
    $data['notification_context_id'] = $context_id;
    $data['entity_id'] = $entity_id;
    $data['notification_by'] = $userid;
    $data['actionid'] = $actionid;
    $data['is_read'] = 0;
    $data['createdtime'] = time();
    foreach($classassocusers as $users){
            $data['notification_to'] = $users->userid;
            $DB->insert_record('homework.comments',$data,false);
        }

所以使用上面给出的插入查询是

  1. 好的做法或坏的做法,
  2. 我应该在每次插入查询执行后设置延迟吗?
  3. 这样做有什么优点和缺点?

Thanks


对于您的情况,使用这样的查询是一个很好的做法。无论如何,您都必须插入用户列表,因此您必须处理许多查询。没有办法解决这个问题!

我不知道为什么你想在每次插入后延迟。这些方法是同步调用,因此您的代码在执行查询期间无论如何都会“暂停”。因此,延迟它只会延迟你的代码,而没有任何进展。

因此,在执行查询时,循环将不会继续。因此,不要故意进一步延迟您的代码。

另一种方法是执行一个查询。

$user_data = "";
foreach($classassocusers as $users) {
   $user_data .= "('" . $users->userid . "', '" . $users->name . "'), ";
}

$user_data = substr($user_data, 0, strlen($user_data) - 2);

$query = "INSERT INTO `homework.comments` ( `id`, `name` )
          VALUES " . $user_data;

这应该进行如下查询:

INSERT INTO `homework.comments` ( `id`, `name` )
VALUES ('1', 'John'),
       ('2', 'Jeffrey'),
       ('3', 'Kate');

(顺便说一下,我对你的情况做了一些假设$users对象和你的表结构。但我相信你明白这个想法)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在循环中插入 sql 查询是好还是坏? 的相关文章

  • PHP 警告 ZipArchive::extractTo():权限被拒绝

    我创建了一个应用程序 它使用 ZipArchive 类 php 中的标准 中的方法 extractTo 并在 Windows 7 上的本地主机 apache 服务器上对其进行了测试 没有任何问题 但是当我在一些unix生产服务器上尝试过它之
  • FPDF - 内嵌粗体文本

    我正在尝试从 PHP 创建 PDF 出于法律原因 我们需要将免责声明的一部分设为粗体 并且需要概述免责声明 我当前的代码使用 if isset POST optout POST optout yes pdf gt Ln 5 pdf gt S
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • SQL COUNT(*) 返回错误答案

    以下脚本应返回部门名称以及这些部门中的员工人数 营销 行政和销售部门有 0 名员工 但返回值不是 0 而是 1 我怎样才能纠正它 select Department Departments DepartmentID count as Num
  • 获取SQL中前2个特殊字符之间的字符

    我有数据在sql 只是要注意 SQL STudio is the IDE like data a 10 b c a 1 b c 我想获取前两个符号之间的数据 Output 10 1 这就是我的方法 SELECT CAST
  • 需要 mysqli_fetch_all 的替代方案

    我有一个 php mysqli 代码 可以找到一个我的本地服务器 但是在我的服务器上使用它时 我得到了一个 Fatal error Call to undefined function mysqli fetch all in home3 t
  • 登录后所有页面都应该是https吗?

    这有点难以解释 但我会尽力 有一个网站 每个页面上都有登录表单 其中包含用户名 密码字段 这些页面未使用 SSL 用户填写用户名 密码并提交表单后 表单将被发送到 https 的身份验证页面 对于这种情况我有几个疑问 向 https 页面提
  • Yii2 DropDownList Onchange 更改自动完成小部件“源”属性?

    我已经尝试过这个 yii2 依赖的自动完成小部件 https stackoverflow com questions 27025791 yii2 dependent autocomplete widget 但我不知道为什么它不起作用 这是我
  • 我可以显示我在 PHP 中设置的所有 cookie 吗?

    我正在尝试诊断 cookie 中的错误 但 cookie 的名称不是应有的名称 PHP 有没有办法打印我的域设置的所有 cookie 你有没有尝试过 print r COOKIE
  • 使用 DOM 获取 div 的内容(包括子标签)

    我正在使用 DOM 来获取 div 标签的内容 但内部 html 部分未显示 功能是 dom new DOMDocument libxml use internal errors true dom gt loadHTMLFile url l
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • 使用 php 和 symfony 从数组创建 Excel 文件

    我正在尝试使用 PHP 和 symfony 将数组导出为 XLS 文件 如下面的代码所示 创建 XLS 文件后 我只能获取数组的最后一行 并且它显示在文件的第一行中 似乎 lignes 变量没有增加 我不明白出了什么问题 有人可以帮忙吗 f
  • 如何使用 PDO 动态构建查询

    我正在使用 PDO 并想做这样的事情 query dbh gt prepare SELECT FROM table WHERE column value query gt bindParam table tableName query gt
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日
  • PHP 除法浮点值问题

    当我尝试获取余数时 它给出了无效值 我试图获得两位小数的余数 我得到 3 4694469519536E 18 我的价值观是 x 0 1 y 0 005 我尝试了以下方法 echo ed fmod 0 1 0 005 OutPut 3 469
  • Laravel 5 注销特定用户

    在我的 laravel 5 应用程序中 有一个功能允许具有管理员角色的用户重置非管理员的任何人的密码 但这不会强制该人注销并再次登录 更改密码后如何强制用户注销 我没有对用于验证用户身份或任何内容的中间件进行任何更改 我不知道它是否有效 但
  • 我的数据库有错误

    创建表时如下 create table Ticket ticket id integer not null primary key AirlineName varchar not null CustomerName varchar from
  • SQL Server XQuery 返回错误

    我正在 SQL Server 2012 中对 XML 数据类型列执行查询 数据示例如下

随机推荐

  • 使用 angularjs 选择多个列表项

    我试图从无序列表中的元素中选择特定的列表项 它应该显示为已选中 我需要通过更改一些背景来显示它 我试图使用 index当我试图在其中使用它时 它是不确定的 li 元素 我可以从内部实现这个目标吗angularjs 不使用复选框或 jQuer
  • 使用 libcurl 发送 SMTP 邮件

    我编译了 libcurl 附带的 c 示例 源文件是smtp tls c尝试使用它通过 gmail 发送邮件 这是我得到的回复 即将 connect 到 smtp gmail com 端口 465 0 正在尝试 74 125 115 109
  • 犰狳+BLAS+LAPACK

    我正在包 LAMMPS 包 内使用犰狳库 我还使用犰狳来编译不同的代码 并且运行良好 我使用以下编译命令 g example2 cpp o example2 O3 larmadillo DARMA DONT USE WRAPPER lbla
  • 当日历在 Android 中触发提醒警报接收器时,如何获取事件 ID?

    这是我的代码 public class CalendarReminderReceiver extends BroadcastReceiver Override public void onReceive Context context In
  • logback 不打印方法或行号

    这是一个 Gradle 项目 使用 Groovy 作为应用程序代码和测试代码 但我使用 logback xml 文件进行配置 这里可能重要的一个因素是我正在使用 Groovy Slf4j http docs groovy lang org
  • Android 图形视图

    我已经使用 jjoe64 的 graphview 库在我的应用程序中实现图形 它的盒子里有非常好的样本 并立即开始将其包含在我的应用程序中 到目前为止我所得到的内容如下所示 但我真正需要的是如下所示 我不希望黑色垂直线出现在图表内 知道如何
  • 为特定站点选择 F12 开发人员工具时显示“Internet Explorer 已停止工作”

    打开开发人员工具时 Internet Explorer 11 最新 崩溃 并显示消息 Internet Explorer 已停止工作 并且我打开了网站 Chrome Edge 不会出现这个问题 我的网站中的所有功能都可以正常工作 这仅适用于
  • Postgresql函数使用动态表名创建表?

    假设我有几个用户 每个用户都有自己的一组联系人 用户可以选择哪些第三方可以访问他们的联系人 我也许可以创建 1 个大型联系人表并有一个 所有者 列 以便我可以识别哪些联系人属于哪些用户 但是 然后我需要维护行级权限 以便我可以限制哪些第三方
  • Makefile 为单个目标提供多个依赖行?

    要生成依赖文件 我可以使用类似的方法来生成依赖文件 include patsubst cpp build d SRC build o cpp CC CXXFLAGS c o lt CC CXXFLAGS MM MT MF patsubst
  • 无法使用 MD5 方法从主机连接到虚拟机上运行的 Postgres

    我有一个使用 Vagrant 设置的虚拟机 在其上运行 Postgres 在端口 5432 上 转发到主机上的端口 8280 我已经为默认用户设置了密码 并且可以很好地进行本地连接 我一直在尝试通过端口 8280 设置从主机的访问 但无法使
  • Elastic Beanstalk 上的 502 错误网关 nginx + puma + Rails 3.2

    部署成功 一切都是绿色的 但是当我们尝试访问应用程序 URL 时 它会给出502 Bad Gateway error 检查 puma 进程ps aux grep puma不返回任何附加到 puma 服务器的进程 但是pgrep返回以下 pg
  • 正则表达式选择某个字符之前的空格

    我想创建一个正则表达式 它允许我选择逗号之前的空格 IE 生日快乐 吉米 正则表达式应选择空格 Happy birthday Jimmy 出现在包含逗号的单词 字符串之前 用括号注明 您可以使用展望 https stackoverflow
  • Android Room - 自动递增@数据库版本号?

    在开发过程中 我的 Room 数据库模式非常不稳定 每次我对架构进行任何更改时 我都需要更新我的版本号 如下所示 Database version 27 entities MyClass class public abstract clas
  • 监控 Firebase 存储变化的最佳方法[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 Firebase 实时数据库和 Firebase 存储在 Unity 中构建一个应用程序
  • 在 Objective-C 中从 NSStream、CFStream 或 Socket 获取 OSX 上的对等 IP 地址和端口

    我编写了一个服务器 用于侦听特定端口上传入的 tcp 连接 为了管理网络连接 我使用 Streams CFStream NSStream 当建立连接时 我将有关该连接的所有信息保存在专用类的另一个实例中 该专用类也被设置为流的委托 现在我想
  • 访问VBA将文件删除到回收站?

    使用以下代码删除我的文件 但它不会进入回收站 是否存在将其发送到回收站的代码 我应该使用 Move 吗 If MsgBox DELETE Chr 10 Forms frmtbl f FullPath Me f FileName vbYesN
  • 如何对 pandas 数据框进行二分搜索以查找列值的组合?

    抱歉 如果这是 pandas 文档解释的一个简单问题 但我尝试寻找如何做到这一点 但没有任何运气 我有一个包含几列的 pandas 数据框 并且我希望能够使用二分搜索来搜索特定行 因为我的数据集很大并且我将进行大量搜索 我的数据如下所示 N
  • 如何在 OData v6.0.0 中启用CaseInsensitive、EnableEnumPrefixFree 和 EnableUnqualifiedNameCall

    我最近将 OData 从 v5 9 1 更新到最新的稳定版本 v6 0 0 在前一个版本中 我使用如下方式配置我的环境 Allows calling the Url like entityAction id config SetUrlCon
  • Angular fire firestore没有导出成员“FirestoreSettingsToken”

    它发生在我第一次编译我的项目时 问题显示如下 Module node modules angular fire firestore angular fire firestore has no exported member Firestor
  • 在循环中插入 sql 查询是好还是坏?

    我有一个用户列表 需要使用 foreach 循环进行迭代 并将数据库表中的每个新行插入到表中 data entity classid classid data notification context id context id data