2014-10-06 63 views
0

我有一個mysql數據庫表currency_exchange列貨幣,xrate和時間。Php PDO Mysql更新沒有結果

我有一個JSON貨幣飼料這是提供貨幣的匯率爲:

「AED」:3.67266,「AFN」:57.1294等。

我需要在我的數據庫更新值。我的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。如果($ rowcount> 0)更新它,否則插入。解決它..

+2

SQL UPDATE更換

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

的方式來改變行已經存在於DB /表。使用INSERT添加行..(reg:「目前我的表是空的。」) – fast 2014-10-06 10:01:29

+2

您不能確定沒有錯誤:您已經編寫了代碼來吞服錯誤消息! – 2014-10-06 10:01:45

+0

對不起,我的意思是如何添加如果空插入或更新。我已經刪除錯誤檢查代碼 – user3790186 2014-10-06 10:07:32

回答

0

正如你所說的你的表是空的,你第一次必須執行一個「INSERT」查詢。 「更新」查詢僅用於更新現有數據。 你有

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

我需要檢查是否有值插入的條件其他更新 – user3790186 2014-10-06 10:26:38

+0

$ stmt = $ conn-> prepare(「INSERT INTO currency_exchange(currency,xrate,time) VALUES(:currency,:exchangerate,:time「);也導致沒有插入???? – user3790186 2014-10-06 10:41:43

+0

更新沒有插入,也沒有錯誤??混淆 – user3790186 2014-10-06 11:04:52