2014-06-26 80 views
1

插入工作在phpmyadmin,但我不明白爲什麼它突然停止工作在我的PHP代碼。該表本身有2列,1是自動遞增,另一個是我試圖插入的值。當表達到99760條目時,從php腳本插入沒有任何影響,但是可以從phpmyadmin插入值。最近summoner_id進入爲410893,這裏是表結構窗口的圖像鏈接:http://puu.sh/9KKuA/35cfcae788.pngmysql插入突然停止工作在我的PHP代碼

<?php 
$con=mysqli_connect("localhost", "root", "pass", "stats"); 

if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$position = $_GET["count"]; 

$ids = strval($position); 
for($i = $position + 1; $i < $position + 40; $i++) 
{ 
    $ids = $ids . "," . strval($i); 
} 

do 
{ 
    sleep(1); 
    $raw = file_get_contents('https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/' . $ids . '?api_key=****'); 
}while(strcmp($http_response_header[0], 'HTTP/1.1 429 429') == 0); 

if(strcmp($http_response_header[0], 'HTTP/1.1 404 Not Found') == 0) 
{ 
    return; 
} 

$data = json_decode($raw, true); 

foreach($data as &$summoner) 
{ 
    if($summoner["summonerLevel"] == 30) 
    { 
     $sql="INSERT INTO `active_summoners`(`summoner_id`) VALUES (" . $summoner["id"] . ")"; 

     if (!mysqli_query($con,$sql)) 
     { 
      echo "Error: " . mysqli_error($con); 
     } 
    } 
} 
?> 
+0

當summoner_id是重複的時,通常會失敗。您應該收到關於違反唯一鍵約束的錯誤消息 - 是嗎? – Adder

+0

不是我能說的嗎?我該如何檢查? –

+0

你確定summoner_id字段是一個INT,你可能不得不放在它周圍的單引號如果它不是..('「。$ summoner ['id']。」') – KyleK

回答

1

我想你應該增加PHP執行尺寸:

ini_set('max_execution_time', 0); 

然後它會正常工作。

1

通過將其放在文件的頂部試試下面的代碼:

set_time_limit(0); 

Details

0

如果插入更多記錄,則需要更多時間。所以我們需要增加php文件中的執行時間:

ini_set('max_execution_time', 3000);