1

Java から PHP バックエンドに簡単な投稿を書きます。スクリプトを実行すると、ファイル名、ファイルサイズなどで渡す出力が得られます。

int filesize=25;
String filetype=".txt";
String hash="sdfjksdfhljahe8wr897348957jsdfajlsdhfl48";
String email="sangwan.ritesh@yahoo.in";
String filename="songs.txt";
String urlParameters = "filename="+filename+"&filesize="+filesize+"&filetype="+filetype+"&filehash="+hash+"&email="+email;    
URL url = new URL("myurl");
HttpURLConnection hp=(HttpURLConnection)url.openConnection();
hp.setDoInput(true);
hp.setDoOutput(true);
hp.setInstanceFollowRedirects(false);
hp.setRequestMethod("POST");
hp.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
hp.setRequestProperty("charset", "utf-8");
hp.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
hp.setUseCaches (false);
DataOutputStream wr = new DataOutputStream(hp.getOutputStream ());
wr.writeBytes(urlParameters);
wr.flush();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(hp.getInputStream()));
line = reader.readLine();
 System.out.println(line);
wr.close();
reader.close();
hp.disconnect();

問題は、サーバー上で実行されている mysql データベースにこれらの値を挿入したいので、次の php コードを作成することです。

<?php
include('dbc.php');
$filename=$_POST['filename'];
$filesize=$_POST['filesize'];
$filetype=$_POST['filetype'];
echo $POST['email'];
$filehash=$_POST['filehash'];
$email=$_POST['email'];
$query = "INSERT INTO files ( `email`, `file_name`, `file_ext`, `file_size`, 'file_hash') VALUES ( '$email', '$filename', '$filetype', '12584', 'filehash')";
$result=mysqli_query($dbc,$query);
if(mysqli_affected_rows($dbc) == 1)
{
  // DO Nothing
}
 echo $_POST['filehash'];
echo $_POST['email'];
echo $_POST['filename'];
echo $_POST['filesize'];
echo $_POST['filetype'];
?>

データが投稿されており、Java アプリケーションで同じデータを取得していますが、データが mysql データベースに入力されていません。上記と同じ列を持つテーブル名ファイルがあります。mysql_error からエラーを取得しようとしましたが、エラーが発生しません。

更新: file_hash の近くで ` の代わりに ' を使用して、愚かな SQL 構文の間違いを解決した問題

4

1 に答える 1