実現したいこと
phpでAPIを作りたい
- リクエスト時に、データをSQLに登録
- 内容をJSONで返却
前提
短縮URLのアプリで、独自ドメインが使えるのは有料になってしまうため、自分で作成しようとしました。
多数参考にしているサイトがあるため、全部紹介するのは難しいです。ごめんなさい
エラー内容は以下の通りです
発生している問題・エラーメッセージ
GAS
1 2Exception: Request failed for https://domain returned code 500 3
php
1 2PHP Parse error: syntax error, unexpected '$jsonapi' (T_VARIABLE), expecting ')' in Standard input code on line 57 3
該当のソースコード
php
1 2<?php 3try{ 4$ctime = date('Ymd_His'); 5$time = date('Y年m月d日H時i分s秒'); 6$MCjson = file_get_contents("php://input"); 7$MCobj = json_decode($MCjson,true); 8$MCjson = mb_convert_encoding($MCjson, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); 9$MCobj = json_decode($MCjson,true); 10$ur1 = $MCobj['a']; 11$apikey = $MCobj['b']['c']; 12 13}catch(JSONException $e){ 14 15 header("HTTP/1.1 400 Bad Request"); 16 header("Content-Type: application/json; charset=utf-8"); 17 $result = array('code'=>400, 'message'=>'エラーが発生しました(document:28)','description'=>$e->getMessage()); 18 echo json_encode($result, JSON_UNESCAPED_UNICODE); 19 exit; 20} 21 22//ここから 23$str = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPUQRSTUVWXYZ'; 24$str_r = substr( 25 str_shuffle($str), 0, 5); 26 27$pdo = new PDO( 28 'mysql:host=localhost;dbname=name;', 29 'name', 30 'password', 31 [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC] 32 ); 33 34 // SQL文をセット 35 $stmt = $pdo->prepare('INSERT INTO rd (id, name, parameter, url, flg, created) VALUES(:id, :name, :parameter, :url, :flg, :created)'); 36 37 // 値をセット 38 $stmt->bindValue(':id', "WEB_API_$str_r"); 39 $stmt->bindValue(':name', "API_$str_r"); 40 $stmt->bindValue(':parameter', $str_r); 41 $stmt->bindValue(':url', $ur1); 42 $stmt->bindValue(':flg', '1'); 43 $stmt->bindValue(':created', $ctime); 44 // SQL実行 45 $stmt->execute(); 46//完了 47 48$uuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535)); 49 50 $user_array=array( 51 'status' => "Complete", 52 'url'=>"https://ur1.lol/$str_r", 53 'ID'=>"$uuid", 54 'powered_by'=>'ROG PURS INC', 55 'time'=>$time, 56 'apikey'=>$apikey, 57 'memo' =>"m.sora348" 58 $jsonapi=json_encode($user_array,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT) 59 60header("HTTP/1.1 200 OK"); 61header("Content-Type: application/json; charset=utf-8"); 62echo $jsonapi; 63
試したこと
多数サイトを参考にしたが、難しくて分からりませんでした。
エラーコードは理解できましたが、対処法が分からず諦めてしまいました。
補足情報(FW/ツールのバージョンなど)
php74だったと思います
追記
2023/03/16/18:40データベースは何も間違っていません
回答2件
あなたの回答
tips
プレビュー