我想向 MySQL 发送一个日期时间和一个用户 ID。这是我的 Android 代码:
try {
String user = params[1];
String date = params[2];
URL url = new URL("http://www.aa.aa/add_signal.php");
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("user", "UTF-8")+"="+URLEncoder.encode(user, "UTF-8")+"&"
+URLEncoder.encode("date", "UTF-8")+"="+date;
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
String result = "";
String line = "";
while((line = bufferedReader.readLine()) != null) {
result += line + "\n";
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
Log.d("HERE", "SENDING RESULT");
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
这是我的 PHP 代码:
<?php
require_once 'conf/zmienne.php';
require_once 'inc/baza.php';
$user=$_GET["user"];
$date=$_GET["date"];
$query = "INSERT INTO `signals_dates` (`date`, `user`) VALUES ('$date', '$user')";
$baza->query($query);
echo 'DONE';
?>
我在数据库中有一条新记录,但它只是零。某些示例数据的 post_data
字符串为:user=1&date=2017-12-15 15:15:15
。我不知道我做错了什么,数据没有保存在数据库中。我在网络浏览器中运行这个 add_signal.php
脚本,它运行良好。
最佳答案
我将代码更改为:
try {
String user = params[1];
String date = params[2];
String str_url = add_signal_url+"?user="+user+"&date="+date;
URL url = new URL(str_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoInput(true);
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
String result = "";
String line = "";
while((line = bufferedReader.readLine()) != null) {
result += line + "\n";
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
Log.d("HERE", "SENDING RESULT");
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
而且它有效。但我不知道为什么以前的版本没有。
关于android - 将日期时间从 Android 发送到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47956222/