2014-10-06 5 views
0

통화, xrate 및 시간 열이있는 mysql 데이터베이스 테이블 currency_exchange가 있습니다.PHP PDO MySQL 업데이트로 결과가 없습니다.

"AED": 3.67266, "AFN": 57.1294 등 내 데이터베이스의 값을 업데이트해야

나는 같은 환율을 제공하는 JSON 통화 공급이있다. 내 PHP 코드는 다음과 같습니다 :

$phpArray = json_decode($jsonData, true); 
$extime = $phpArray['timestamp']; 
$rates = $phpArray['rates']; 
include_once 'connstring.inc.php'; 
$uptime = date("m-d-Y H:i:s"); 
if (isset($rates) && !empty($rates))//if data set and not empty 
{ 
    $conn->beginTransaction(); 
    $stmt = $conn->prepare("UPDATE `currency_exchange` set `currency` = :currency, `xrate` = :exchangerate,`time` = :time"); 
    try 
    { 
    foreach($rates as $key => $value) 
    { 
     $stmt->execute(array(':currency' => $key, ':exchangerate' => $value, ':time' => $uptime)); 
    }  
    $conn->commit(); 
    }//end try 
    catch(PDOException $e) 
    { 
    $conn->rollBack();  
    }  
}//end if  

현재 테이블이 비어 있습니다. 만약 빈 삽입 삽입 코드가 필요합니다. 어떻게 가능합니까?

도움말 요청. 미리 감사드립니다.

업데이트 :

currency_exchange 테이블에서 $ rowcount를 확인했습니다. if ($ rowcount> 0)을 업데이트하면 삽입됩니다. 그것을 해결 ..

+2

SQL의 UPDATE와

$stmt = $conn->prepare("UPDATE 'currency_exchange' set 'currency' = :currency, 'xrate' = :exchangerate,'time' = :time"); 

를 교체해야하면 DB/테이블에 이미 존재하는 행을 변경하는 것을 의미합니다. INSERT를 사용하여 행을 추가하십시오. (reg : "현재 테이블이 비어 있습니다.") – fast

+2

오류가 없다는 것을 확신 할 수 없습니다 : 오류 메시지를 삼키기위한 코드를 작성했습니다! –

+0

죄송합니다. 빈 삽입 또는 추가 업데이트를 추가하는 방법을 의미했습니다. 오류 검사 코드를 제거했습니다. – user3790186

답변

0

당신이 당신의 테이블이 비어 있다고 언급 했으므로 처음으로 "INSERT"쿼리를 수행해야합니다. "업데이트"쿼리는 기존 데이터 만 업데이트하는 데 사용됩니다. 당신은

$stmt = $conn->prepare("INSERT INTO `currency_exchange` (`currency` ,`xrate`,`time`) VALUES (currency, exchangerate,time"); 
+0

값을 입력하지 않으면 다른 값을 삽입해야합니다. – user3790186

+0

$ stmt = $ conn-> prepare ("INSERT INTO currency_exchange (currency, xrate, time) VALUES (: currency, : exchangateate, : time "); 결과도 삽입되지 않음 ???? – user3790186

+0

Update는 아무 것도 삽입하지 않으며 오류도 없음 ?? Confused – user3790186