2014-08-28 4 views
1

Я попытался войти в мое приложение и это ошибка, что я получил:сбой приложения после того, как я пытаюсь войти в

08-28 07:57:31.450: E/JSON(1047): <br />n<b>Warning</b>: mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known. 
in <b>C:\xampp\htdocs\API\include\DB_connect.php</b> on line <b>19</b><br />n<br />n<b>Warning</b>: mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known. 
in <b>C:\xampp\htdocs\API\include\DB_connect.php</b> on line <b>19</b><br />nNo database selectedn 
08-28 07:57:31.450: E/JSON Parser(1047): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject 

Похоже, что не удалось подключиться к БД, но я не» понять почему.

Кроме того, это мой index.php файл, который находится в xampp/htdocs/api:

<?php 

if (isset($_POST['tag']) && $_POST['tag'] != '') { 
// get tag 
$tag = $_POST['tag']; 

// include db handler 
require_once 'include/DB_Functions.php'; 
$db = new DB_Functions(); 

// response Array 
$response = array("tag" => $tag, "success" => 0, "error" => 0); 

// check for tag type 
if ($tag == 'login') { 
    // Request type is check Login 
    $email = $_POST['email']; 
    $password = $_POST['password']; 

    // check for user 
    $user = $db->getUserByEmailAndPassword($email, $password); 
    if ($user != false) { 
     // user found 
     // echo json with success = 1 
     $response["success"] = 1; 
     $response["uid"] = $user["unique_id"]; 
     $response["user"]["name"] = $user["name"]; 
     $response["user"]["email"] = $user["email"]; 
     $response["user"]["created_at"] = $user["created_at"]; 
     $response["user"]["updated_at"] = $user["updated_at"]; 
     echo json_encode($response); 
    } else { 
     // user not found 
     // echo json with error = 1 
     $response["error"] = 1; 
     $response["error_msg"] = "Incorrect email or password!"; 
     echo json_encode($response); 
    } 
} else if ($tag == 'register') { 
    // Request type is Register new user 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 

    // check if user is already existed 
    if ($db->isUserExisted($email)) { 
     // user is already existed - error response 
     $response["error"] = 2; 
     $response["error_msg"] = "User already existed"; 
     echo json_encode($response); 
    } else { 
     // store user 
     $user = $db->storeUser($name, $email, $password); 
     if ($user) { 
      // user stored successfully 
      $response["success"] = 1; 
      $response["uid"] = $user["unique_id"]; 
      $response["user"]["name"] = $user["name"]; 
      $response["user"]["email"] = $user["email"]; 
      $response["user"]["created_at"] = $user["created_at"]; 
      $response["user"]["updated_at"] = $user["updated_at"]; 
      echo json_encode($response); 
     } else { 
      // user failed to store 
      $response["error"] = 1; 
      $response["error_msg"] = "Error occured in Registartion"; 
      echo json_encode($response); 
     } 
    } 
    } else { 
      echo "Invalid Request"; 
    } 
     } else { 
      echo "Access Denied"; 
      } 
?> 

Это config.php файл:

<?php 

    define("DB_HOST", "localhost"); 
    define("DB_USER", "root"); 
    define("DB_PASSWORD", ""); 
    define("DB_DATABASE", "dbapp"); 
?> 

db_connect.php файл:

<?php 

class DB_Connect { 

    // constructor 
    function __construct() { 

    } 

    // destructor 
    function __destruct() { 
     // $this->close(); 
    } 

    // Connecting to database 
    public function connect() { 
     require_once 'config.php'; 
     // connecting to mysql 
     $con = mysql_connect('DB_HOST', 'DB_USER', 'DB_PASSWORD'); 
     // selecting database 
     mysql_select_db('DB_DATABASE'); 

     // return database handler 
     return $con; 
    } 

    // Closing database connection 
    public function close() { 
     mysql_close(); 
    } 

} 

?> 

ответ

0

я нашел причина этого, в DB_conne кт файла я должен вставить параметры непосредственно вместо того, чтобы получить его из файла config.php

в первом это было:

public function connect() { 
    require_once 'config.php'; 
    // connecting to mysql 
    $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
    // selecting database 
    mysql_select_db(DB_DATABASE); 

    // return database handler 
    return $con; 
} 

и его должно быть:

public function connect() { 
    require_once 'config.php'; 
    // connecting to mysql 
    $con = mysql_connect('127.0.0.1', 'root', ''); 
    // selecting database 
    mysql_select_db('dbapp'); 

    // return database handler 
    return $con; 
} 
+0

Это неправильно, вам нужно импортировать файл 'config.php', используя' require', и использовать его в вашем файле – Sal00m

1

несколько задач:

  1. Избавьтесь от mysql_ * функций, они устарели и не долго эр поддерживается, использование Mysqli или PDO расширений
  2. Вы используете константы как строки, так mysql_connect не может подключиться к любому серверу под названием DB_HOST
  3. Вы не импортируя файл config.php так db_connect.php не знают о постоянных

Таким образом, db_connect.php будет что-то вроде этого (я буду использовать * mysql_ функции, но вы должны использовать Mysqli функции, по крайней мере, я могу переписать класс, используя PDO при необходимости)

<?php 

require('config.php); // <--- Added require 

class DB_Connect { 

    // constructor 
    function __construct() { 

    } 

    // destructor 
    function __destruct() { 
     // $this->close(); 
    } 

    // Connecting to database 
    public function connect() { 
     require_once 'config.php'; 
     // connecting to mysql 
     $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); //<---- REMOVED ' 
     // selecting database 
     mysql_select_db(DB_DATABASE); 

     // return database handler 
     return $con; 
    } 

    // Closing database connection 
    public function close() { 
     mysql_close(); 
    } 

} 

?> 
+0

, когда я пытаюсь добавить require ('config.php); весь мой экран станет серым, вы уверены, что код правильный? –

+0

Это зависит от вашего config.php. Код, который я написал, считает, что 'config.php' находится в том же каталоге, что' db_connect.php', если не просто изменить путь. И ошибки tur php (ошибка, которую вы описываете, дает вам фатальную ошибку, я думаю) – Sal00m

Смежные вопросы