Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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
我的数据进入我的MySQL数据库,但它仍然会出现重复输入错误,而我';我在java中遇到了SingleClientConnManager错误_Java_Php_Android_Mysql - Fatal编程技术网

我的数据进入我的MySQL数据库,但它仍然会出现重复输入错误,而我';我在java中遇到了SingleClientConnManager错误

我的数据进入我的MySQL数据库,但它仍然会出现重复输入错误,而我';我在java中遇到了SingleClientConnManager错误,java,php,android,mysql,Java,Php,Android,Mysql,我正在尝试为我的android应用程序创建一个注册页面。 我已经创建了一个登录页面,现在我正在尝试让注册页面工作 我已经成功地将通过注册页面发送的数据输入数据库。我正在使用php脚本将数据传输到mysql数据库中 但每次我注册时,它都会发送数据并返回回显,说明用户名/邮件已经存在 它还显示了Java中的以下错误:SingleClientConnManager的使用无效:连接仍被分配 我已经试着修复这个问题好几个小时了,但是找不到任何有用的东西 这是我的数据库: id - primary key

我正在尝试为我的android应用程序创建一个注册页面。 我已经创建了一个登录页面,现在我正在尝试让注册页面工作

我已经成功地将通过注册页面发送的数据输入数据库。我正在使用php脚本将数据传输到mysql数据库中

但每次我注册时,它都会发送数据并返回回显,说明用户名/邮件已经存在

它还显示了Java中的以下错误:SingleClientConnManager的使用无效:连接仍被分配

我已经试着修复这个问题好几个小时了,但是找不到任何有用的东西

这是我的数据库:

id - primary key AI
mail - unique 
password 
username - unique
这是我的php脚本

<?php
 $hostname_memolink = "localhost";
 $database_memolink = "memolink";
 $username_memolink = "android";
 $password_memolink ="f3.W2TmM}8yO";
 $memolink = mysql_connect($hostname_memolink, $username_memolink, $password_memolink) or trigger_error(mysql_error(), E_USER_ERROR);

 mysql_select_db($database_memolink, $memolink);

 $mail = $_POST['mail'];
 $password = $_POST['password'];
 $username = $_POST['username'];

 if (trim($password) == "" or trim($username) == "" or trim($mail) == "") 
 {
 echo "variables are null";
 exit;
 }
 else
 {
 $resultUsername = mysql_query("SELECT * FROM tbl_user WHERE username='$username'");
 $resultMail = mysql_query("SELECT * FROM tbl_user WHERE mail='$mail'");
 $num_rows_username = mysql_num_rows($resultUsername);
 $num_rows_mail = mysql_num_rows($resultMail);

 if ($num_rows_username >= 1 && $num_rows_mail >= 1) {
  echo "username or email already exists";
  die();
 }
 else
 {
  mysql_query("INSERT INTO tbl_user (id, mail, password, username) VALUES('', '$mail', '$password', '$username')") or die(mysql_error());
  echo "registration complete";
 }
 }
?>

如果这对您有帮助,请查看此文件。如果您需要更多帮助,请告诉我们


另外,在您的代码中,您将执行两次查询,第一次正常执行,一旦它得到第二次查询(因为您的数据已经插入),这将满足条件并打印错误消息。希望这会有所帮助。

您能在php脚本中打印邮件、用户名和密码的值,并告诉我这些值是什么吗?我不确定您的意思,我只是回显了脚本中的所有变量,它给出的值与我在android应用程序中输入的值相同。你需要使用响应正文,然后才能将连接重新用于另一个请求。您不仅应该读取响应状态,还应该将响应输入流完全读取到最后一个字节,从而忽略读取的字节。好吧,我已经消除了SingleClientConnManager错误,但我的php脚本仍然表示用户名或电子邮件已经存在。那么,看看数据库中是否有任何插入?只需查询您的数据库。我正在进行两次查询,以检查用户名或邮件地址是否已存在。它会将数据插入数据库,我的意思是在你的android活动代码中。这里:response=httpClient.execute(httpPost)//将数据发送到Internet ResponseHandler ResponseHandler=new BasicResponseHandler();String response=httpClient.execute(httpPost,responseHandler);第一个响应是HttpResponse的实例,第二个是String,那么为什么在这里执行两次呢?
    HttpPost httpPost;
StringBuffer buffer;
HttpResponse response;
HttpClient httpClient;
List<NameValuePair> registerData;

public void register(){
    try{

        httpClient = new DefaultHttpClient();
        httpPost = new HttpPost("http://www.memo-link.be/php/register.php");
        registerData = new ArrayList<NameValuePair>(2);
        EditText mailBox = (EditText) findViewById(R.id.mail_box);
        EditText userBox = (EditText) findViewById(R.id.username_box);
        EditText passBox = (EditText) findViewById(R.id.password_box);

        String mail = mailBox.getText().toString();
        String username = userBox.getText().toString();
        String password = passBox.getText().toString();

        registerData.add(new BasicNameValuePair("mail", mail));
        registerData.add(new BasicNameValuePair("username", username));
        registerData.add(new BasicNameValuePair("password", password));
        httpPost.setEntity(new UrlEncodedFormEntity(registerData));

        response = httpClient.execute(httpPost); //send data to Internet

        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String response = httpClient.execute(httpPost, responseHandler);
        System.out.println("Response : " + response.toString());

        if (response.equalsIgnoreCase("username or email already exists")){
            runOnUiThread(new Runnable(){
                public void run(){
                    dialog.dismiss();
                }
        });
            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            v.vibrate(250);
            Toast toast = Toast.makeText(RegisterActivity.this, "Username already exists!", Toast.LENGTH_SHORT);
            toast.show();
        }else if(response.toString().equalsIgnoreCase("username or email already exists")){
            runOnUiThread(new Runnable(){
                public void run(){
                    dialog.dismiss();
                }
        });
            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            v.vibrate(250);
            Toast toast = Toast.makeText(RegisterActivity.this, "Mail address already in use!", Toast.LENGTH_SHORT);
            toast.show();
        }else if(response.toString().equalsIgnoreCase("registration complete")){
            runOnUiThread(new Runnable(){
                public void run(){
                    Toast toast = Toast.makeText(RegisterActivity.this, "Registration Succesfull", Toast.LENGTH_SHORT);
                    toast.show();
                }
            });
            startActivity(new Intent(RegisterActivity.this, DashboardActivity.class));
        }

        runOnUiThread(new Runnable(){
            public void run(){
                dialog.dismiss();
            }
    });

    }catch (Exception e){
        dialog.dismiss();
        System.out.println("Exception : " + e.getMessage());
    }
}