PythonでJSON配列を作成し、
Python
1import csv 2import requests 3import json 4import hashlib 5import hmac 6import base64 7 8# リクエスト先PHP 9API_Endpoint = 'http://localhost:8888/--------/like_logs_insert.php' 10 11###########ログ送信########### 12 13body = { 14 "data" : [ 15 { 16 'user_id': '0001', 17 'ins_id': 'green_green_greeeeen', 18 'ha_tag': '国分寺', 19 'tar_id': 'cobo.cobo.sucrier', 20 'li_at': '2021-05-11 00:25:46', 21 'pos_at': '2021-05-10T15:17:03.000Z' 22 }, 23 { 24 'user_id': 'AAAAA', 25 'ins_id': 'green_green_greeeeen', 26 'ha_tag': '国分寺', 27 'tar_id': 'kimagure_took', 28 'li_at': '2021-05-11 00:26:04', 29 'pos_at': '2021-05-10T14:53:51.000Z' 30 }, 31 { 32 'user_id': 'AAAAA', 33 'ins_id': 'green_green_greeeeen', 34 'ha_tag': '国分寺', 35 'tar_id': 'm710ys', 36 'li_at': '2021-05-11 00:26:19', 37 'pos_at': '2021-05-10T14:47:33.000Z' 38 } 39 ] 40 } 41 42json_body = json.dumps(body) 43custom_header = {'Content-Type': 'application/x-www-form-urlencoded', 44 'X-Signature' : ----------} 45 46# API接続 47result = requests.post(API_Endpoint,data=json_body,headers=custom_header) 48print( "status:", result.status_code ) 49 50print(result) 51print(result.text)
それをPHPで受け取り、連想配列型に処理を行い、
PHP
1require_once('function.php'); 2$dbh = dbConnect(); 3 4$logs = json_decode(file_get_contents('php://input'),true); 5// var_dump($logs); 6 7foreach($logs as $log){ 8 foreach($log as $values){ 9 foreach($values as $value){ 10 try { 11 $stmt = $dbh->prepare("INSERT INTO like_logs(user_id,ins_id,ha_tag,tar_id,li_at,pos_at) values (?,?,?,?,?,?)"); 12 $stmt->execute($value); 13 echo '送信成功'; 14 15 } catch(PDOException $e){ 16 echo '送信失敗'. $e->getMessage(); 17 exit(); 18 }; 19 } 20 } 21} 22?>
下記内容のテーブルへ保存したく思います。
MySQL
1①id int(191) AUTO_INCREMENT 2②user_id varchar(191) 3③ins_id varchar(191) 4④ha_tag varchar(191) 5⑤tar_id varchar(191) 6⑥li_at datetime(6) 7⑦pos_at datetime(6) 8⑧created_at timestamp(6)
エラーが出ず、ターミナル上では送信成功と18回プリントされますが、MySQLへ値の更新がされません。
理由がわからず、どなたかわかる方いらっしゃいませんでしょうか。
宜しくお願い致します。
あなたの回答
tips
プレビュー