APIからjsonデータをMySQLに保存しようとしています。APIからmysqlデータベースにjsonコンテンツを保存する
私はこの単純なPHPコード
<?php
require 'config.php';
$url = "https://www.widgety.co.uk/api/operators.json?app_id<key>&token<token>";
$string = file_get_contents('https://www.widgety.co.uk/api/operators.json?app_id<key>&token=<token>');
$arr = json_decode($string, true);
foreach($arr as $item){
$title = $item['operator']['title'];
$id = $item['operator']['id'];
$profile_image = $item['operator']['profile_image_href'];
$cover_image = $item['operator']['cover_image_href'];
$href = $item['operator']['href'];
$html_href = $item['operator']['html_href'];
$unique_text = $item['operator']['unique_text'];
$reasons_to_book = $item['operator']['reasons_to book'];
$members = $item['operator']['members_club'];
$brochures = $item['operator']['brochures'];
$ships = $item['operator']['ships'];
$video_url = $item['operator']['video_url'];
$query("INSERT INTO operator (title, id, profile_image) VALUES('$title', '$id', '$profile_image')");
$dataatodb = mysqli_query($con, $query);
if(!$dataatodb){
die("Error" . mysqli_error($con));
}
}
?>
を使用しています。しかし、私は私が間違って何をやっている
Warning: file_get_contents(app_id<key>&token<token>): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in C:\xampp\htdocs\mypage\dataload.php on line 6
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\mypage\dataload.php on line 9
このエラーが出ますか?
PS URLに私はそれがオブジェクトである間、あなたのjson``response as an
array`を扱っている右APP_IDとトークン
あなたのコードは、SQLインジェクションに対して脆弱です。 [prepared statements](https://www.youtube.com/watch?v=nLinqtCfhKY)を使用する方法を学んでください。 –
'file_get_contents'の代わりにCURLを使用すると、ほとんどの本番環境ではセキュリティ上の理由から' file_get_contents'が許可されません。 –
生成されたURLが新しいブラウザセッションで試してみましたか?あなたのPHPインストールが[URLを開くことを許可するように設定されている](http://us2.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen)であることを確認しましたか? –