[英]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.