我在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
我试图尽可能清楚地随意询问更多信息,谢谢。
答案 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)
前提条件失败
在服务器上测试时,一个或多个请求标头字段中给出的前提条件被评估为false。此响应代码允许客户端在当前资源元信息(标题字段数据)上放置先决条件,从而防止将请求的方法应用于非预期的资源。
这可能是因为您提供的网址
http://ec2-54-171-67-69.eu-west-1.compute.amazonaws.com/volleyRegister.php
似乎正在运行一个Web服务器,但是没有正确解释PHP脚本 - 它向我显示了PHP文件的原始文本。
container.ComposeParts(this);
也许您没有安装php插件,或者没有正确配置。
这是服务器端的问题,而不是应用程序方面的问题。