引用堆栈上的各种示例,我编写了以下代码将数据发送到 MySQL 服务器表,但那里没有上传任何内容。这是我的 Android 方法的代码。
public void sendtoserver(final String data) {
Log.e("LWFAB", "Sending Data to Server");
//Send data to server now
new Thread(new Runnable() {
@Override
public void run() {
try {
URL bulkdataurl = new URL("http://myphp.php?");
HttpURLConnection bulkcon = (HttpURLConnection) bulkdataurl.openConnection();
bulkcon.setConnectTimeout(15000);
bulkcon.setReadTimeout(15000);
bulkcon.setRequestMethod("POST");
bulkcon.setDoOutput(true);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(bulkcon.getOutputStream());
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(bufferedOutputStream));
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
bufferedOutputStream.close();
bulkcon.connect();
//OutputStreamWriter outputStreamWriter = new OutputStreamWriter(bulkcon.getOutputStream());
//outputStreamWriter.write(data);
//outputStreamWriter.flush();
//Get Server Response
BufferedReader bufferedReader;
bufferedReader = new BufferedReader(new InputStreamReader(bulkcon.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line + "\n");
}
System.out.println(stringBuilder.toString());
bufferedReader.close();
System.out.println("Sending Bulk Data " + bulkcon);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
我没有收到任何错误。下面是我的 php 代码
<?php
require_once("../dbconnect.php");
$json = file_get_contents('php://input');
$obj = json_decode($json, true);
error_log(print_r($obj, true));
$array_data = $obj["data"];
print_r($obj["data"]);
foreach ($array_data as $row) {
print_r($row);
$sql = "INSERT INTO test (vid, name,branch,date,time) VALUES ('" . $row["vid"] . "', '" . $row["name"] . "','".$row["branch"]."','".$row["date"]."','".$row["time"]."')";
echo "$sql<br>";
$conn->query($sql);
}
$conn->close();
?>
作为字符串发送的数据示例如下:
{"data":[{"vid":"1","name":"raj","branch":"mech","date":"2-Sep-2017","time":"13:03:24 PM"}]}
如果有什么要解决的,你能指导一下吗?
最佳答案
您正在使用 cursor.getInt(1)
,它将从游标返回一个整数。您需要使用 cursor.getString()
来获取字符串并将它们正确地放入 JSON 中。
这是一个小例子:
jsonObject.put("vid", curser.getString(cursor.getColumnIndex("vid")));
关于java - 将数据作为 json 字符串插入 Mysql 服务器 - 无数据上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46525726/