我有一个mysql数据库表currency_exchange,其中包含currency,xrate和time列。
我有一个json货币Feed,它提供的货币汇率为:
" 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
目前我的桌子是空的。我需要有一个if空插入其他更新代码。怎么可能。
请求帮助。提前谢谢。
更新
在currency_exchange表中检查$ rowcount。 if($ rowcount> 0)更新它,否则插入。解决了.. ..
答案 0 :(得分:0)
正如您所提到的,您的表是空的,这是您第一次执行“INSERT”查询。 “更新”查询仅用于更新现有数据。 你必须替换
$stmt = $conn->prepare("UPDATE `currency_exchange` set `currency` = :currency, `xrate` = :exchangerate,`time` = :time");
与
$stmt = $conn->prepare("INSERT INTO `currency_exchange` (`currency` ,`xrate`,`time`) VALUES (currency, exchangerate,time");