2016-03-04 43 views
0

我想填充超过1,000行数据(随机生成的数字)的数据库表。 我的代码:尝试从一个PHP循环填充数据库表

$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(); 
    } 

而且同样的问题,只有一行受到影响。

+0

问题可能在于该功能或类。 – Mihai

+0

很难说没有看到你的卡片类,但我可能会怀疑在intval(“2”。rand(100,999)。rand(10000,99999))中使用点而不是逗号也可能是一个因素。 – Anton

回答

1

你的问题是你每次都保存相同的Card,而不是创建新的。

请尝试以下...

for ($i=1; $1<= 1000; $i++) { 
    $card = Card::newInstance($request->all()); 
    $card->pin = intval("2" . rand(100,999) . rand(10000,99999)); 
    $card->save(); 
} 
+0

感谢您解答问题。一旦我尝试过你的工作。再次感谢 – user2245190

0

你可以选择类似下面的方法:

$password = Hash::make('secret'); 

    for ($i = 1; $i <= 1000; $i++) 
    { 
     $users[] = [ 
      'email' => 'user'. $i .'@myapp.com', 
      'password' => $password 
     ]; 
    } 

    User::insert($users); 

这也将极大地提高性能。