私はcurlを使ってYoutube APIへの呼び出しからビデオ情報のすべての行を挿入する方法を理解しようとしています。私は何が間違っているのか分からないが、何を試しても1行しか挿入できない。 ランダム再生リストで試した方法の簡単な例を次に示します。Youtube APIからMysqlにデータを挿入
$con=mysqli_connect("localhost","...","...","...");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2C+id%2C+status&playlistId=PLU12uITxBEPHfZZRTIk96NduwU_8hT-Yo&maxResults=10&key={API KEY}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0'
));
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
$json_response = curl_exec($ch);
curl_close ($ch);
$result = json_decode($json_response, true);
foreach ($result['items'] as $page_info) {
$video_id = $page_info['snippet']['resourceId']['videoId'];
$title = $page_info['snippet']['title'];
mysqli_query($con, "INSERT INTO links (video_id, title) VALUES ('$video_id', '$title')");
}
また、すべての配列を作成しようとしましたが、SQLにダンプしようとしました。私はまだ同じ1行の結果を得ると思ったが、とにかく試した。
$values = array();
foreach ($result['items'] as $page_info) {
$video_id = $page_info['snippet']['resourceId']['videoId'];
$title = $page_info['snippet']['title'];
$values[] = "('$video_id', '$title')";
}
$query_values = implode(',', $values);
mysqli_query($con, "INSERT INTO links (video_id, title) VALUES $query_values");
誰でも私が間違っていることを理解するのに役立つことができますか?ありがとう。
UPDATE:
私はそれが壊れているか何かされているかもしれないと思う、私は私のテーブルに問題があったが判明。私は新しいテーブルを作成し、私の問題を解決しました。
Youtube APIを使用して独自のデータベースにデータを挿入する方法を学びたいと思っている人なら、最初のボックスの上のコードは今のところうまく動作します。
だけの変更:自分のDBの設定に
$con=mysqli_connect("localhost","...","...","...");
。例:
$con=mysqli_connect("localhost","Username","Password","Database");
$ video_id、$ titleなどの挿入する値を追加し、新しい値を使用するようにクエリを更新します。
例:
$video_id = $page_info['snippet']['resourceId']['videoId'];
$title = $page_info['snippet']['title'];
$description = $page_info['snippet']['description'];
mysqli_query($con, "INSERT INTO links (video_id, title, description) VALUES ('$video_id', '$title', '$description')");
また、キー=を使用してURLへのあなたのAPIキーを追加する必要があります。
例:
$url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2C+id%2C+status&playlistId=PLU12uITxBEPHfZZRTIk96NduwU_8hT-Yo&maxResults=10&key=123456789123456789";
あなたがここにhttps://console.developers.google.com/をサインアップすることにより、あなたの自由なAPIキーを取得し、ライブラリをクリックして、YouTubeのデータAPIを選択することができます。
URLを作成して希望のデータをクエリできるようにするには、これを開始するのがよいでしょう。 https://developers.google.com/youtube/v3/sample_requests
var_dump($ result ['items'])の出力を投稿できますか? – cvipul
ここにprint_rがあります。私はまたそれを下に掲示した。 https://pastebin.com/88qZZ8t2 – rich