尝试从 php 循环填充数据库表


Trying to populate a database table from a php loop

我正在尝试用超过 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);

这也将大大提高性能。