2014-03-29 2 views
-1

로컬 서버에서이 스크립트를 실행했지만 제대로 작동하지만 테이블 레코드가 업데이트되지 않으며 MySQL 오류가 반환되지 않았습니다. 누군가 내가 제발 도와 줄 수 있니?업데이트 mysql이 작동하지 않습니다.

ini_set("allow_url_fopen", 1); 
$connect = mysqli_connect('localhost','Username','Password','Database') 
    or die('Could not connect: ' . mysqli_error($connect)); 
$handle_source = fopen('http://media.jgoodin.com/dropship/jgi-inventory.csv', 'r'); 

//updating regular product 
while (($data = fgetcsv($handle_source, 500, ",")) !== false) 
{ 
    $VendorSKU = $data[0]; 
    $onHand = $data[1]; 

    if ($result = mysqli_query($connect,"SELECT reference 
     FROM ps_product WHERE reference='$VendorSKU'")) 
     { 
      if ($line = mysqli_fetch_assoc($result, MYSQL_ASSOC)) 
      { 
       mysqli_query($connect,"UPDATE ps_product 
        SET quantity='$onHand' 
        WHERE reference='$VendorSKU'");  

       echo "UPDATE ps_product 
        SET quantity='$onHand' 
        WHERE reference='$VendorSKU'","<br>"; 
      } 
      mysqli_free_result($result); 
     } 
} 
fclose($handle_source); 
mysqli_close($connect); 
+0

는 아마도 더 행이없는 경우'참조 = '$ VendorSKU' '. –

+1

CSV 파일을 반복하면서 매번 $ 결과 변수를 덮어 쓰고 있습니다. 마지막 행에 해당하는 $ 결과 만 사용됩니다. 읽을 수있는 마지막 행이 비어있을 수 있습니다. –

+0

내 테이블의 참조와 동일한 레코드 (VendorSKU)를 찾으면 에코가 생성되지만 테이블 레코드는 업데이트되지 않습니다. – user3476879

답변

0
이로 업데이트 통화 변경

: 제품이 있는지 여부를 확인도

if (!mysqli_query($connect, 'UPDATE ps_product 
    SET quantity=' . intval($onHand, 10) . ' 
    WHERE LOWER(trim(reference))=\'' . strtolower(trim(mysqli_real_escape_string($connect, $VendorSKU))) . '\'')) 
{ 
    die(mysqli_error($connect)); 
} 

을, 당신은 단지 제거 할 수 있습니다 - 그것은 쓸모가

+0

위와 같이 확인 행을 삭제하고 업데이트 호출을 변경했지만 여전히 작동하지 않으며 오류가 없습니다. – user3476879

+0

내 로컬 서버에서 정상적으로 작동하지만 호스팅 할 때 작동하지 않습니다. – user3476879

+0

@ user3476879 왜 작동하지 않는 걸까요? 어떻게 DB를 확인합니까? –

관련 문제