質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

0回答

1065閲覧

WPFからPOSTした情報をPHP側で受け取りそれをMysqlにInsertできない

nguyenseiji

総合スコア156

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2021/08/09 23:43

お世話になっております。

WPFを使ってPOSTしたJSONの情報をPHP側で受け取ってそれをPHP側でLinux上にあるMysqlにInsertしたいのですが
うまくいきません、、、

何点か質問があるのですが
->WPF側でJson情報をPostした場合はPHP側の$_POST[""]の引数はどのような名前になるのでしょうか

またうまくInsertできていないのですが何が原因なのでしょうか、
よろしくお願いいたします。

php

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Test</title> 7</head> 8<body> 9<?php 10try{ 11require "./database.php"; 12$DBH->beginTransaction(); 13 14$Id = null; 15$UserName = null; 16 17$JsonData = $_POST["response"]; 18$JsonDecode = json_decode($json,true); 19 20 21$STMT = $DBH->prepare('INSERT INTO Test(Id,UserName) VALUE(?,?)'); 22$STMT->bindValue(1,$JsonDecode[0],PDO::PARAM_INT); 23$STMT->bindValue(2,$JsonDecode[1],PDO::PARAM_STR); 24$STMT->execute(); 25 26$DBH->commit(); 27}catch(Exception $ERROR){ 28 $DBH->rollBack(); 29 print $ERROR; 30 exit(); 31} 32 33 34?> 35</body> 36</html>

wpf

1 private async void Button_Click(object sender, RoutedEventArgs e) 2 { 3 var client = new HttpClient(); 4 var json = "{ \"Id\" : 5, \"UserName\" : \"太郎\" }"; 5 var content = new StringContent(json, Encoding.UTF8, "application/json"); 6 7 var response = await client.PostAsync("http://localhost/", content); 8 } 9 } 10 11}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/08/09 23:54

先のこちらの質問の成り行きはどうなってしまったのでしょうか。 [WPFを使ったWebAPIでPOSTしたJSON情報がWEB側のPHPを使ってデータベースにうまく追加できない] https://teratail.com/questions/350561 その延長(あるいは後退)なのではありませんか。
退会済みユーザー

退会済みユーザー

2021/08/10 00:37

> var response = await client.PostAsync("http://localhost/", content); 相手は localhost でいいんですか? 表題の「PHP側で受け取りそれをMysqlにInsertできない」の「PHP側で受け取り」ができてないのでは? そこのところは調べたのですか? 質問者さん、厳しいことを言うようですが、調べればわかることを調べないで丸投げしているようにしか見えません。読んでください→ https://teratail.com/help/question-tips
m.ts10806

2021/08/10 00:58

今言えること 「デバッグ覚えましょう」
dodox86

2021/08/10 01:23

C#/WPF vs PHPの特有の問題ではなくて、まずHTTPリクエストのPOSTメソッド/コンテントボディをどう構築してサーバー側でどう取り扱うか。DBへのINSERTはまた後の問題ですね。
nguyenseiji

2021/08/10 01:38

どこか間違えているのでしょうか? 難しすぎます,.
m.ts10806

2021/08/10 01:42 編集

強いてなら、いきなり自分では難しすぎると感じることに手を出していることがそもそもの間違い。どちらの言語もそこまでできるように見えません(デバッグすらままならないなら入門レベルですらない)。 少し頑張ったら見えるなくらいから手を出してください。
m.ts10806

2021/08/10 01:49

自身が各環境や言語についてどの段階かなるべく正確に把握するところから。 https://togetter.com/li/1268851 やりたいことだけやろうもしてできるわけがありません。
shinami

2021/08/10 02:32

うまくいかないとは?何らかのエラーが出るからうまくいかないと判断したのでしょうか? 特に何らエラーは出てないが、データベース側を見てデータが入っていなかったのでうまくいかなかったと判断したのでしょうか? エラーが出る場合は、そのエラーで検索しその原因を特定する。 何もエラーが発生していない場合は、どこかでデータの受け渡しが行われなかったので小分けにして調べる。 本当に、POSTした内容がPHPで受け取れていない事が原因なのか? 実は、PHPでは受け取れているがデータベースへ書き込む所で失敗している? 実は、そもそもWPFでPOSTできていないクライアント側の問題だったり?宛先はそれであってる? WPFで自作しているクライアントの代わりにPostmanなどの汎用ツールでも試す事ができますが それでもPHP側で受け取れない? 取り敢えず、PHP側の$JsonDatanにデータが入ってくるのかを確認されては? そこにデータが入っていればデータベースへ書き込む所となります。 $JsonDataに値が入っているかどうやって調べたら良いのか?分からない場合は、 まずは、デバッグやブレークポイントの設置から覚えましょう。となる訳です。 ※似たような質問を多数されていますが、内容は1つの質問にまとめまましょう。 質問文は編集できますよ。
BluOxy

2021/08/10 10:43 編集

前の質問にも書かせて頂きましたが、参考にしたページやドキュメントなどを整理しませんか。 ドキュメントなしに特定の情報だけをかいつまんでいては理解が進まないかと思います。 もし整理が終わったら、参考にしたそれ等のURL等を質問に記載しましょう。 そうすればそれ等を根拠にして読めていない部分や間違って参考にしているであろう部分などの問題を指摘でき、問題に対する解決策を回答できます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問