次のコードを使用して、json コードを配列に変換し、値を mysql に挿入しています。まず、for ループを使用して、次のようなテーブルを作成しました。
$url='http://www.coinchoose.com/api.php';
$contents = file_get_contents($url);
$contents = utf8_encode($contents);
$results = json_decode($contents, true);
for ($i=0; $i<=22; $i++){
mysql_query("CREATE TABLE $symbol(
id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), timestamp BIGINT, symbol VARCHAR(3), name VARCHAR(20), algo VARCHAR(20), currentBlocks VARCHAR(20), difficulty DECIMAL (18,9), reward DECIMAL (18,9), price DECIMAL (18,9), exchange VARCHAR(20), ratio DECIMAL (8,4))")
or die(mysql_error());
}
次に、次のように、別の for ループを使用して、 http://www.coinchoose.com/api.phpの json API からの値をmysql テーブルに挿入しました。
$url='http://www.coinchoose.com/api.php';
$contents = file_get_contents($url);
$contents = utf8_encode($contents);
$results = json_decode($contents, true);
print_r($results);
$time=time();
for ($i=0; $i<=22; $i++){
$symbol=strtolower($results[$i]['symbol']);
$name=$results[$i]['name'];
$algo=$results[$i]['algo'];
$currentBlocks=$results[$i]['currentBlocks'];
$difficulty=$results[$i]['difficulty'];
$reward=$results[$i]['reward'];
$price=$results[$i]['price'];
$exchange=$results[$i]['exchange'];
$ratio=$results[$i]['ratio'];
mysql_query("INSERT INTO $symbol VALUES (id, $time, '$symbol', '$name', '$algo', '$currentBlocks', $difficulty, '$reward', $price, '$exchange', $ratio)") or die(mysql_error());
}
理解できない次のエラーが表示されます。
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 45
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 46
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 47
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 48
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 49
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 50
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 51
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 52
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
( ! ) Notice: Undefined offset: 21 in C:\wamp\www\api.php on line 53
Call Stack
# Time Memory Function Location
1 0.0004 706424 {main}( ) ..\api.php:0
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES (id, 1369998276, '', '', '', '', , '', , '', )' at line 1
このエラーが発生する理由を誰かが明確にしてくれることを願っています。上記をより適切にコーディングするための提案は、よりきれい/より良い方法で実行できると確信しているため、大歓迎です。値が mysql に解析されるため、コードは機能します。ただし、エラーは引き続き表示されます