作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个用户列表,需要使用 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);
}
所以使用上面给出的插入查询是
谢谢
最佳答案
在您的情况下,使用这样的查询是一种很好的做法。无论如何,您都必须插入一个用户列表,因此您将不得不处理许多查询。没有办法解决这个问题!
我不知道您为什么要在每次插入后延迟。这些方法是同步调用,因此您的代码在执行查询期间无论如何都会“暂停”。所以延迟它只会延迟你的代码,而没有任何进展。
因此您的循环在执行查询时不会继续。所以不要故意延迟你的代码。
另一种方法是执行一个查询。
$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
对象和您的表结构做了一些假设。但我相信您明白了)
关于php - 在循环中插入 sql 查询是好事还是坏事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7202537/
我是一名优秀的程序员,十分优秀!