0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DMM apiの使い方(自分のデータベースを作る方法)

Last updated at Posted at 2022-10-17

※本記事は成人向けのサイトに使った技術についてです。

実現したかったこと

DMM apiではソートできないものがあったので独自のデータベース(以下DB)を作りたかった。

例:女優apiでできない誕生日での抽出など

実装環境

・mixhostレンタルサーバー ・Wordpress(テーマcocoon)使用 ・FileZilla Clientでphpファイル設置

使用言語

・SQL ・php ・javascript

javascriptでやること

概要:phpとDMM apiの橋渡し
function main(){
宣言省略
for(let k=1 ; k<”総女優人数” ; k=k+100|0){
・
let url = "”DMM apiにアクセスするためのurl”";
・
fetch(url).then( function(response) {
return response.json();
}).then(async function(json) {
・
for (let i = 0 ; i < json.result.actress.length ; i++) {
・
act_id=json.result.actress[i].id;if(act_id==null){act_id=""};
name=json.result.actress[i].name;if(name==null){name=""};
ruby=json.result.actress[i].ruby;if(ruby==null){ruby=""};
bust=json.result.actress[i].bust; if(bust==null){bust=""};
cup=json.result.actress[i].cup;
waist=json.result.actress[i].waist; if(waist==null){waist=""};
height=json.result.actress[i].height; if(height==null){height=""};
birthday=json.result.actress[i].birthday; if(birthday==null){birthday=""};
blood=json.result.actress[i].blood_type; if(blood==null){blood=""};
、、
//phpファイルを指定してパラメータ状に値を渡す
let urlphp='https://masanblog.net/”phpファイル名”/?actid='+act_id+'&name='+name+'、、、、;
 
fetch(urlphp).then(function(response) {
}).then(function(jsonphp) {
});
 
}//for
})//json
};//k
};//main

javascriptを細かく解説

やっていることは単純で
  1. fetch通信を利用してDMM apiを呼び出し変数Aに欲しい値を代入
  2. fetch通信を利用して自ドメインのphpファイルを読み出しパラメータで値を受け渡す

をしているだけです。

ちなみに他の方法をしってる方。ご教授ください!この方法はDB一行分を一回の通信としているため結構時間がかかるのです。

phpでやること

概要:受け取ったデータをSQL文を使用してDBに挿入

$act_id = $_REQUEST['actid'];
//以下省略
 
try {
//DBに接続
$pdo = new PDO(
'DB名'
'ユーザー名'
'パスワード'
// レコード列名をキーとして取得させる
[PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]
);
 
// SQL文をセット
$stmt = $pdo->prepare('INSERT INTO act (act_id,name,ruby,、、) VALUES(:act_id,:name,:ruby,:bust、、、);
  
   // 値をセット
$stmt->bindValue(':act_id', $act_id)
以下省略
 
// SQL実行
$stmt->execute();
}catch(PDOException $e) {
//エラー処理
echo $e->getMessage();
}finally {
// DB接続を閉じる
$pdo = null;
}
※phpファイルはテキストファイルを作った後に拡張子をphpに変更することで作成できる

phpを細かく解説

  1. 受け取ったデータを変数に代入($act_id = $_REQUEST['actid'];
  2. PDOを使用してDBと接続
  3. $pdo->prepareを利用してSQL文をセット
  4. bindValueでSQL文の変数に値をセット
  5. $stmt->execute();でSQLを実行しDBに一行追加
  6. DB接続を切断

phpファイルの設置場所

FileZillaを使用

public_htmlの直下に設置

以上となります。

まとめ

javascriptはともかくphpやsql、通信と言われると警戒するかもしれませんが効率をあまり求めないのであれば一つ一つの部品はネット上に紹介されています。今回の記事もその一つとして参考になれば幸いです。

サイトについて

fanza女優図鑑はfanzaサンプル動画のコンテンツの一つです。

fanzaサンプル動画はポップアップで出演女優・サンプル画像が一発で探せたり、女優図鑑ではカップ検索・誕生日検索など様々な検索ができます。

どちらかというとスマホ用です。(改めまして、成人向けなので注意してください。)

次回は作ったDBの使い方です。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?