首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能连接到我的数据库

为什么我不能连接到我的数据库
EN

Stack Overflow用户
提问于 2016-11-09 19:40:52
回答 2查看 76关注 0票数 0

我已经在AWS上设置了一个apache2 ubuntu服务器,我在该服务器上创建了一个mySQL db,现在我试图从我的安卓应用程序中更新数据库,但它没有连接。

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

代码语言:javascript
复制
<?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方法。

代码语言:javascript
复制
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);
    }

这是我得到的错误:

代码语言:javascript
复制
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       

我已经试着尽可能清楚的要求任何更多的信息,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-11 19:33:54

错误码412意味着

在一个或多个请求头字段中给出的前提条件失败,在服务器上测试时将其计算为false。此响应代码允许客户端在当前资源metainformation (标头字段数据)上设置先决条件,从而防止将所请求的方法应用到预期资源以外的资源。

这很可能是因为您提供的URL

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

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

代码语言:javascript
复制
<?php

 if($_SERVER['REQUEST_METHOD']=='POST'){
 $username = $_POST['username'];
 $email = $_POST['email'];
 $password = $_POST['password'];

 require_once('dbConnect.php');

 $sql = "INSERT INTO users (username,password,email) VALUES ('$username','$email','$password')";


 if(mysqli_query($con,$sql)){
 echo "Successfully Registered";
 }else{
 echo "Could not register";

 }
 }else{
echo 'error';
}
?>

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

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

票数 0
EN

Stack Overflow用户

发布于 2016-11-09 20:31:59

试试这个可能有用。

分隔DB名称

$con = mysql_connect (主机、用户、传递)或模具(“无法连接到MySQL.”);

mysql_select_db(DB);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40514722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档