Bloombergを使用して通貨の実勢レート(基本レートとしてUSDを使用)を取得する通貨換算サービスで作業しています。ブルームバーグからすべての金利を得ることができます。キャッシュに入れて後で取り出すためにデータベースに挿入するときに、エラー 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);
}
私はこれを実行すると、それはしばらくのどこかに障害が発生していることを意味する、各リフレッシュ上のデータベースに一つだけのアイテムを更新しますが、私はできませんどこにピンポイントがあるようだ。
これを解決するために、私は20分間Googleを検索し、複数のクエリを実行できないmyqliについて読んでいます。これは私がquerysを実行し、PHPとmySQLを使ってそれらをフェッチするPHPの本を介して教えられた方法です。ユニのプロキシサービスの周りに追加の読み取り/解説/ヘルプへようこそ
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);
}
}
リンクを取得するにはuwe_get_file =機能:ここで
は、ブルームバーグ機能が道です。あなたは、UPDATE文の結果と$r
を上書きしている
は、私は他のプロジェクトで前にこれをやった、それがうまく働いています、答えを投票して投票として、これに気付かなかった、ありがとうございました最高です、お時間をありがとう。 – Daniel