2016-11-22 65 views
0

我正在開發一個解析器,每次解析器都會將圖像從URL複製到遠程服務器,並將詳細信息保存在MySql數據庫中。我正在做的是這樣的:循環運行正好20次,但MySql數據庫僅插入數據16次

function scrap_photo($frompage, $permalink, $url, $message, $createdtime, $type, $imgid) { 
    global $last_cron_timestamp; 
    global $cxn; 

    if ($createdtime > $last_cron_timestamp && $type == "photo") { 


      $current_time_stamp = round(microtime(true) * 1000); 
      $imgpath = "photo/".$current_time_stamp.".jpg"; 
      echo $imgpath; 
      $fp = fopen($imgpath, "w"); 

      $handle = curl_init(); 
      curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1); 
      curl_setopt($handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); 
      curl_setopt($handle, CURLOPT_URL, $url); 
      curl_setopt($handle, CURLOPT_FOLLOWLOCATION, TRUE); 
      curl_setopt($handle, CURLOPT_FAILONERROR, true); 
      curl_setopt($handle, CURLOPT_TIMEOUT, 300); 
      curl_setopt($handle, CURLOPT_FILE, $fp); 
      curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, FALSE); 

      curl_exec($handle); 
      curl_close($handle); 
      fclose($fp); 


      $query = "INSERT INTO images (permalink, url, message, createdtime, imgid, frompage, type, photo_name, photo_path) VALUES ('$permalink', '$url', '$message', '$createdtime', '$imgid', '$frompage', '$type', '$current_time_stamp', '$imgpath')"; 

      mysqli_query($cxn, $query); 
    } 
} 

這個功能'scrap photo'正被用來保存圖像到目錄並在數據庫中寫入詳細信息。

我面對的問題是,循環運行20次,該函數被調用20次,甚至在文件夾中的圖像計數是20,但在MySql數據庫中,只有16個查詢被插入。

我不明白如何或爲什麼,幫助!

+0

我在這裏看不到循環。 –

+0

你認爲獨特的鑰匙? – barudo

+0

是的,循環在那裏,每次都調用這個函數。 –

回答

0
  • 確保您的病情if ($createdtime > $last_cron_timestamp && $type == "photo") {通行證的20張照片,
  • 使用mysqli_error檢查數據庫返回的錯誤,例如你的價值觀可能是null而數據庫不允許他們成爲null