【发布时间】:2015-03-23 12:20:20
【问题描述】:
假设我有一个名为“users”的 mysql 表,而且我经常必须为我的每个用户在另一个 mysql 表中插入一条记录。
例如:
<?php
$result = mysqli_query( $c,"SELECT user_id FROM users WHERE '$search'" );
while( $array = mysqli_fetch_array( $result ) ) {
// execute a query for each users
mysqli_query( $c,"INSERT INTO example ( id, user_id, record1, record2, date ) VALUES ( NULL, '$array[user_id]', '$record1', '$record2', '$date' )" );
$count++;
}
echo "$count rows added";
?>
如果我有 1'000 或 10'000 个用户,一切都会很好。
但我想知道,如果我有 100,000 个用户(甚至更多),我应该如何避免服务器错误/内存限制?
有办法拆分我的脚本吗?
【问题讨论】:
-
使用
INSERT INTO example SELECT id FROM users之类的东西将所有这些都简化为一个查询....有关详细信息,请参阅 manual -
一个查询,插入 someTable 从其他表中选择一些记录,在您的示例中无需将任何内容带入 php。
标签: php mysql loops while-loop split