2014-05-15 74 views
0

對於項目我通過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以下欄目:

對,最後,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插入數據庫?

+0

什麼是'對'應該是?你想獲得'BTC_LTC'嗎?我對你如何獲得價值以及你遇到什麼麻煩有點困惑。我看不出它是如何「派生」的。 –

+1

1.你在桌子上有主鍵嗎? 2.它是什麼? 3.什麼是「對」? 4.爲什麼它不與其他數據一起插入? – Sammitch

+0

Pair確實是BTC_LTC – user3586358

回答

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(); 
}