簡體   English   中英

為什么我無法連接到數據庫

[英]Why can't I connect to my DB

我已經在AWS上設置了一個apache2 ubuntu服務器,在上述服務器上創建了一個mySQL數據庫,現在我正嘗試從我的android應用程序更新數據庫,但未連接。

這是服務器端的PHP文件,應連接到數據庫。

<?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       

我試圖盡可能清楚地詢問更多信息,謝謝。

試試這個可能行得通。

分隔數據庫名稱

$ con = mysql_connect(主機,用戶,通過)或死亡(“無法連接到MySQL。”);

mysql_select_db(DB);

根據您的評論之一( 此處 )中的此鏈接,由於它正在打印代碼,因此看起來服務器上未安裝PHP。

安裝它的最簡單方法是在Ubuntu上使用sudo apt-get install lamp-server^命令。

如果只需要PHP,請使用sudo apt-get install php7.0 安裝后,請使用sudo service apache2 restart重新啟動您的apache服務器以應用PHP安裝。

要測試PHP是否已啟動並運行,請將以下代碼寫入文件,在瀏覽器中訪問PHP時,您應該獲得一個充滿有關PHP安裝數據的表:

<?php
phpinfo();
?>

錯誤代碼412的含義

前提條件失敗

在服務器上測試時,在一個或多個請求標頭字段中給出的前提條件被評估為false。 此響應代碼允許客戶端在當前資源元信息(標頭字段數據)上放置先決條件,從而防止將請求的方法應用於除預定資源以外的其他資源。

這可能是由於您提供的URL

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

似乎正在運行Web服務器,但未正確解釋PHP腳本-它向我顯示PHP文件的原始文本。

<?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插件,或者配置不正確。

這是服務器端而不是應用程序端的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM