为什么我无法连接到我的数据库

时间:2016-11-09 19:40:53

标签: php android mysql android-volley

我在AWS上设置了一个apache2 ubuntu服务器,我在所述服务器上创建了一个mySQL数据库,现在我正在尝试从我的android应用程序更新数据库,但它没有连接。

这是服务器端的PHP文件,它应该连接到db。

<?php
 define('HOST','ec2-54-171-67-69.eu-west-1.compute.amazonaws.com');
 define('USER','root');
 define('PASS','password');
 define('DB','ugproject');

 $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');
 ?>

这是Java方法。

private static final String REGISTER_URL = "ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php";
 private void registerUser(){
        final String username = editTextUsername.getText().toString().trim();
        final String password = editTextPassword.getText().toString().trim();
        final String email = editTextEmail.getText().toString().trim();

        StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
                    }
                }){
            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put(KEY_USERNAME,username);  
                params.put(KEY_PASSWORD,password);  
                params.put(KEY_EMAIL, email);  
                return params;
            }

        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

这是我得到的错误:

E/Volley: [126] BasicNetwork.performRequest: Unexpected response code 412 for http://ubuntu@ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php       

我试图尽可能清楚地随意询问更多信息,谢谢。

3 个答案:

答案 0 :(得分:0)

尝试这可能有用。

分隔数据库名称

$ con = mysql_connect(HOST,USER,PASS)或死掉(&#39;无法连接到MySQL。&#39;);

mysql_select_db(DB);

答案 1 :(得分:0)

根据您的一条评论(here)中的此链接,看起来您在服务器上安装了PHP,因为它打印出代码。

最简单的安装方法是在Ubuntu上使用sudo apt-get install php7.0命令。

如果您只需要PHP,请使用sudo service apache2 restart。安装后,使用<?php phpinfo(); ?> 重新启动Apache服务器以应用PHP安装。

要测试PHP是否已启动并运行,请将此代码写入文件,当您在浏览器中访问它时,您应该获得一个包含PHP安装数据的表:

{{1}}

答案 2 :(得分:0)

Error code 412表示

  

前提条件失败

  在服务器上测试时,一个或多个请求标头字段中给出的前提条件被评估为false。此响应代码允许客户端在当前资源元信息(标题字段数据)上放置先决条件,从而防止将请求的方法应用于非预期的资源。

这可能是因为您提供的网址

  

http://ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php

似乎正在运行一个Web服务器,但是没有正确解释PHP脚本 - 它向我显示了PHP文件的原始文本。

container.ComposeParts(this);

也许您没有安装php插件,或者没有正确配置。

  

这是服务器端的问题,而不是应用程序方面的问题。