使用彭博獲取貨幣的實時匯率(使用美元作爲基礎匯率)來處理貨幣兌換服務。我可以從bloomberg獲得所有費率,只要將它們插入到數據庫(用於緩存和稍後檢索)時,它就會發現錯誤 Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in
。使用mysqli運行多個查詢
這是我的PHP的特定部分:
//Select all the currency codes where the rate has not been set
$q = "SELECT currency_code FROM `currency` WHERE rate = 0";
//Run the query
$r = mysqli_query($dbc,$q);
//If the query was successful..
if($r){
//Fetch the results from the query
while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){
//Set $curr to the currency code
$curr = $row['currency_code'];
//Set $rate to a currency_code from the previous query, and put it in the bloomberg function
$rate = bloomberg($curr);
//Update the currency table with the vars just set
$q = "UPDATE currency SET rate='$rate' WHERE currency_code='$curr'";
//Run the query
$r = mysqli_query($dbc, $q);
}
當我運行它,它在每次刷新,這意味着同時在某處失敗更新數據庫只有一個項目,但我不能似乎查明在哪裏。
爲了解決這個問題,我搜索了Google二十分鐘,並閱讀了關於myqli無法運行多個查詢。這是我通過PHP書籍教授的方式運行查詢並使用PHP和MySQL獲取它們的方式。
這裏順便彭博功能:uwe_get_file =功能來解決統一的代理服務
function bloomberg($to){
$cur = $to;
$file = uwe_get_file('http://www.bloomberg.com/personal-finance/calculators/currency-converter/');
if(preg_match ("/price\['$cur:\S*\s=\s(\S*);/",$file,$out)){
return number_format($out[1], 4);
}
}
鏈接到另外的讀/解釋/幫助歡迎。
非常感謝你,沒有注意到這一點,因爲我已經在其他項目中這樣做過,而且它工作得很好,投了答案,如投票最好的,謝謝你的時間。 – Daniel 2010-11-23 16:35:09