gpt4 book ai didi

java - 从 Android 发布到 mysql php

转载 作者:行者123 更新时间:2023-11-30 22:31:26 25 4
gpt4 key购买 nike

我开始了一个项目,我想在我的应用程序中使用 php 脚本管理几个数据库。读取数据库非常容易,我在尝试使用 HttpUrlConnection 和 Uri.Builder 时遇到了向数据库添加任何内容的问题。我必须说我不知道​​ php,但如果我在 php sprict 中手动输入用户名和密码,它就可以正常工作,所以问题出在 uri 构建器或 php 中的 _POST。

有没有人有其他解决方案/可以在我的代码中找到问题。

安卓:

myUrl = new URL("http://www.traveling.esy.es/postToPhp.php");

conn = (HttpURLConnection) myUrl.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);

Uri.Builder builder = new Uri.Builder()
.appendQueryParameter("USER_NAME", "" + userEditText.getText().toString())
.appendQueryParameter("PASSWORD", "" + passEditText.getText().toString());

String query = builder.build().getEncodedQuery();
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.flush();
writer.close();
os.close();

PHP:


<?php
$server_name = "correct_database_info";
$user_name = "correct_database_info";
$password = "correct_database_info";
$database_name = "correct_database_info";
$users_table = "correct_database_info";


***$user_name_post = $_POST["USER_NAME"];
$password_post = $_POST["PASSWORD"];***


// Create connection
$conn = mysqli_connect($server_name, $user_name, $password, $database_name);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}else{
//echo "Successfully connected to Database" . "<br>";


***$sql = "INSERT INTO USERS (`USER_NO`, `USER_ID`, `USER_NAME`, `USER_IMAGE`, `USER_LOCATION`) VALUES (NULL, '34', '$user_name_post' , '$password_post', 'home')";***


if ($conn->query($sql) === TRUE) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>

最佳答案

好的,我自己找到了答案。我使用 URLEncoder 类来发布,起初我没有用,似乎我必须添加输入流才能工作(我不知道为什么)。

这是更新后的安卓代码:

myUrl = new URL("http://www.traveling.esy.es/postToPhp.php");
conn = (HttpURLConnection) myUrl.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);


String name = userEditText.getText().toString();
String pass = passEditText.getText().toString();

String data = URLEncoder.encode("USER_NAME", "UTF-8") + "=" + URLEncoder.encode(name, "UTF-8") + "&" +
URLEncoder.encode("PASSWORD", "UTF-8") + "=" + URLEncoder.encode(pass, "UTF-8");
OutputStream os = conn.getOutputStream();


BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();

InputStream inputStream = conn.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
String response = "";
String line = "";
while ((line = bufferedReader.readLine())!=null){
response+= line;
}
bufferedReader.close();
inputStream.close();
conn.disconnect();
os.close();

Log.d("POST_DEBUG", "INPUT:" + response);
Log.d("POST_DEBUG", ""+data);

关于java - 从 Android 发布到 mysql php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com