多维数组插入语句

时间:2014-05-15 17:58:10

标签: php mysql

对于一个项目我通过JSON查询比特币交易所的API,我试图将其导入到mysql数据库中。

结果的简单var_dump给出了以下内容:

array (size=141)
'BTC_LTC' => 
array (size=7)
  'last' => string '0.0235' (length=6)
  'lowestAsk' => string '0.02359999' (length=10)
  'highestBid' => string '0.0235' (length=6)
  'percentChange' => string '-0.00635047' (length=11)
  'baseVolume' => string '8.60317949' (length=10)
  'quoteVolume' => string '364.54762523' (length=12)
  'isFrozen' => string '0' (length=1)

因此,我在表poloniex中创建了以下列:

Pair,Last,LowestAsk,HighestBid,PercentChange,BaseVolume,QuoteVolume,IsFrozen,其中所有都是INT(50),但是'Pair'列是VARCHAR(50)。

从数据结构中可以看出,该对可以作为主键派生,而每行中的第二个阵列可以派生出其他组件。

我认为这要在数据库中查询:

$stmt = $dbc->stmt_init();
$stmt->prepare("INSERT INTO `poloniex` (`Last`, `LowestAsk`, `HighestBid`, `PercentChange`, `BaseVolume`, `QuoteVolume`, `IsFrozen`) VALUES(?, ?, ?, ?, ?, ?, ?)");
foreach($ticker as $row)
{
    $stmt->bind_param('ddddddi', $row['last'], $row['lowestAsk'], $row['highestBid'], $row['percentChange'], $row['baseVolume'], $row['quoteVolume'], $row['isFrozen']);
    $stmt->execute();
}
$stmt->close();

$ dbc是本地mysqlserver的数据库连接。

问题:如何将Pair插入数据库?

1 个答案:

答案 0 :(得分:1)

似乎pair是关键,请尝试:

foreach($ticker as $pair => $row)  

然后使用$pair。如下所示:

$stmt->prepare("INSERT INTO `poloniex`
(`Pair`, `Last`, `LowestAsk`, `HighestBid`, `PercentChange`, `BaseVolume`, `QuoteVolume`, `IsFrozen`)
VALUES(?,?, ?, ?, ?, ?, ?, ?)");

foreach($ticker as $pair => $row)
{
    $stmt->bind_param('sddddddi', $pair, $row['last'], $row['lowestAsk'], $row['highestBid'], $row['percentChange'], $row['baseVolume'], $row['quoteVolume'], $row['isFrozen']);
    $stmt->execute();
}