Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用Android Studio在Phpmyadmin中保存数据_Java_Android - Fatal编程技术网

Java 无法使用Android Studio在Phpmyadmin中保存数据

Java 无法使用Android Studio在Phpmyadmin中保存数据,java,android,Java,Android,我想在Android Studio 3.5上制作一个包含注册页面的活动应用程序。后端服务器正在使用本地主机使用Phpmyadmin。本地主机和Phpmyadmin之间的连接成功。但是,当我尝试使用emulator注册新帐户时,后端无法保存任何数据。代码有问题吗 Php文件 <?php $con = mysqli_connect("localhost","root","usbw","social"); $name = $_POST["name"]; $email

我想在Android Studio 3.5上制作一个包含注册页面的活动应用程序。后端服务器正在使用本地主机使用Phpmyadmin。本地主机和Phpmyadmin之间的连接成功。但是,当我尝试使用emulator注册新帐户时,后端无法保存任何数据。代码有问题吗

Php文件

<?php

    $con = mysqli_connect("localhost","root","usbw","social");

    $name = $_POST["name"];
    $email = $_POST["email"];
    $password = md5($_POST["password"]);

    $con->set_charset("UTF8");

    $statement = mysqli_prepare($con,"INSERT INTO register(name, email, password) VALUES (?,?,?,?)");
    mysqli_stmt_bind_param($statement, "siss", $name, $email, $password);
    mysqli_stmt_execute($statement);

    $reponse = array();
    $response["success"] = true;

    echo json_encode($response);
?>

安德里奥德工作室

package com.example.home;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Pattern;

public class MainActivity extends AppCompatActivity {
    EditText name, email, password;
    Button submit;
    String result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        name = (EditText)findViewById(R.id.editText);
        email = (EditText)findViewById(R.id.editText3);
        password = (EditText)findViewById(R.id.editText4);
        submit = (Button)findViewById(R.id.button);

        submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Thread thread = new Thread(multiThread);
                thread.start();

                try {
                    URL url = new URL("http://localhost:8080/Connect.php");
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("POST");
                    connection.setDoOutput(true);
                    connection.setDoInput(true);
                    connection.setUseCaches(false);
                    connection.connect();

                    int responseCode = connection.getResponseCode();
                    if(responseCode == HttpURLConnection.HTTP_OK){
                        InputStream inputStream = connection.getInputStream();
                        BufferedReader bufReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"), 8);
                        String box = "";
                        String line = null;

                        while((line = bufReader.readLine()) != null) {
                            box += line + "\n";
                        }

                        inputStream.close();
                        result = box;
                    }
                } catch(Exception e) {
                    result = e.toString();
                }

                if (name.getText().toString().trim().isEmpty()){
                    name.setError("請輸入名字");
                    name.requestFocus();
                } else if (email.getText().toString().trim().isEmpty()){
                    email.setError("請輸入有效電郵地址");
                    email.requestFocus();
                } else if (password.getText().toString().trim().isEmpty()){
                    password.setError("請輸入密碼");
                    password.requestFocus();
                } else if (name.length() < 6) {
                    name.setError("用戶名長度必須最少為6");
                    name.requestFocus();
                } else if (password.length() < 8){
                    password.setError("密碼長度必須最少為8");
                    password.requestFocus();
                } else {
                    Intent intent = new Intent(getApplicationContext(), MainLastPage.class);
                    startActivity(intent);
                }
            }
        });
    }

    public boolean isPassword(String password){
        final String Password_PATTERN = "^(?![0-9])(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$";
        Pattern pattern = Pattern.compile(Password_PATTERN);
        pattern.matcher(password).matches();
        return true;
    }

    public boolean name(){
        String user = name.getText().toString().trim();
        if (user.isEmpty()) {
            name.setError("請輸入名字!");
            return false;
        } else if (!isPassword(user)) {
            password.setError("請輸入密碼!");
            return false;
        } else {
            return true;
        }
    }

    private Runnable multiThread = new Runnable(){
        public void run() {
            runOnUiThread(new Runnable() {
                public void run() {
                    submit.setText(result);
                }
            });
        }
    };
}        
package com.example.home;
导入androidx.appcompat.app.appcompat活动;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入java.io.BufferedReader;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.util.regex.Pattern;
公共类MainActivity扩展了AppCompatActivity{
编辑文本名称、电子邮件、密码;
按钮提交;
字符串结果;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=(EditText)findViewById(R.id.EditText);
email=(EditText)findViewById(R.id.editText3);
密码=(EditText)findViewById(R.id.editText4);
submit=(按钮)findViewById(R.id.Button);
submit.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
线程=新线程(多线程);
thread.start();
试一试{
URL=新URL(“http://localhost:8080/Connect.php");
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod(“POST”);
connection.setDoOutput(真);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.connect();
int responseCode=connection.getResponseCode();
if(responseCode==HttpURLConnection.HTTP\u确定){
InputStream InputStream=connection.getInputStream();
BufferedReader bufReader=新的BufferedReader(新的InputStreamReader(inputStream,“utf-8”),8);
字符串框=”;
字符串行=null;
而((line=bufReader.readLine())!=null){
框+=行+“\n”;
}
inputStream.close();
结果=框;
}
}捕获(例外e){
结果=e.toString();
}
if(name.getText().toString().trim().isEmpty()){
name.setError(“請輸入名字");
name.requestFocus();
}else if(email.getText().toString().trim().isEmpty()){
email.setError(“請輸入有效電郵地址");
email.requestFocus();
}else if(password.getText().toString().trim().isEmpty()){
密码设置错误(“請輸入密碼");
password.requestFocus();
}else if(name.length()<6){
name.setError(“用戶名長度必須最少為6");
name.requestFocus();
}else if(password.length()<8){
密码设置错误(“密碼長度必須最少為8");
password.requestFocus();
}否则{
Intent Intent=新的Intent(getApplicationContext(),MainLastPage.class);
星触觉(意向);
}
}
});
}
公共布尔值isPassword(字符串密码){
最后的字符串密码_PATTERN=“^(?![0-9])(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-zA-Z]{6,16}$”;
Pattern=Pattern.compile(密码模式);
pattern.matcher(password.matches();
返回true;
}
公共布尔名称(){
字符串user=name.getText().toString().trim();
if(user.isEmpty()){
name.setError(“請輸入名字!");
返回false;
}如果(!isPassword(用户))为else{
密码设置错误(“請輸入密碼!");
返回false;
}否则{
返回true;
}
}
private Runnable多线程=new Runnable(){
公开募捐{
runOnUiThread(新的Runnable(){
公开募捐{
submit.setText(结果);
}
});
}
};
}        

我认为错误在PHP文件中。首先,将4个参数传递到3行

$statement = mysqli_prepare($con,"INSERT INTO register(name, email, password) VALUES (?,?,?,?)");
mysqli_stmt_bind_param($statement, "siss", $name, $email, $password);
在您的情况下,我认为您应该删除其中一个“?”

VALUES (?,?,?)
此外,您忘记关闭该语句,因此,在结尾处:

$statement->close();

最后但并非最不重要的一点是,如果你试图发送大量数据,你应该考虑使用MySQL ListMtxsEnthLangyDATA()将其打包发送。

这与PHPmyadmin有什么关系?这不只是用来设置MySQL数据库吗?是的,是用来设置数据库的。但我不确定哪一部分是错误的。再说一次,这有什么关系?我只是一个初学者。不确定我的文件的哪一部分与我的问题有关。我应该发布什么文件给她你把访问MySQL数据库的接口和数据库本身搞混了。它连接的是MySQL服务器,而不是phpMyAdmin。