2016-03-04 73 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); 

這也將極大地提高性能。