我正在尝试用超过 1,000 行数据(随机生成的数字)填充数据库表。我的代码:
$input = new Card($request->all());
$i = 1;
while($i <= 1000 ){
$input->pin = intval( "2" . rand(100,999) . rand(10000,99999) );
$input->save();
$i++;
}
问题是只有一个数据被发送到数据库。我也尝试了这个for
循环:
$input = new Card($request->all());
for($i=1; $1<= 1000;$i++ ){
$input->pin = intval( "2" . rand(100,999) . rand(10000,99999) );
$input->save();
}
同样的问题,只有一行受到影响。
您的问题是您每次都保存相同的Card
,而不是创建新的。
请尝试以下操作...
for ($i=1; $1<= 1000; $i++) {
$card = Card::newInstance($request->all());
$card->pin = intval( "2" . rand(100,999) . rand(10000,99999) );
$card->save();
}
您可以选择以下方法:
$password = Hash::make('secret');
for ($i = 1; $i <= 1000; $i++)
{
$users[] = [
'email' => 'user'. $i .'@myapp.com',
'password' => $password
];
}
User::insert($users);
这也将大大提高性能。