Неопределенная переменная: ошибка в C:wampwwwandroid_connectdb_connect.php в строке 48

#php #android

#php #Android

Вопрос:

В моем приложении для Android. Я пытаюсь аутентифицировать пользователя, для этого я написал php-скрипт для установления соединения с базой данных, но, к сожалению, я получаю следующую ошибку—

«Неопределенная переменная: con в C:wampwwwandroid_connectdb_connect.php в строке 48«

Чтобы устранить эту ошибку, я объявил «$ con» как глобальную переменную, но все равно получаю ту же ошибку-

Мой db_connect.php код — это—

 <?php

/**
 * A class file to connect to database
 */
class DB_CONNECT 
{

    private $con;    

    // constructor
    function __construct() 
    {
        // connecting to database
        $this->connect();
    }

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

    /**
     * Function to connect with database
     */
    function connect() 
    {
        // import database connection variables
        require_once __DIR__ . '/db_config.php';

        // Connecting to mysql database             
    $con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);

        // Selecing database
        $db = mysqli_select_db($con, DB_DATABASE); 
        // returing connection cursor
        return $con;
    }

   /*       
    * Function to close db connection
    */
    function close() 
    {
    // closing db connection
        mysqli_close($con);

    }   
}

?>
  

Пожалуйста, помогите. Спасибо ..!

Комментарии:

1. Вам нужно обратиться к $this->con

Ответ №1:

 <?php

/**
 * A class file to connect to database
 */
class DB_CONNECT 
{

    private $con;    

    // constructor
    function __construct() 
    {
        // connecting to database
        $this->connect();
    }

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

    /**
     * Function to connect with database
     */
    function connect() 
    {
        // import database connection variables
        require_once __DIR__ . '/db_config.php';

        // Connecting to mysql database             
        $this->con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);

        // Selecing database
        $db = mysqli_select_db($this->con, DB_DATABASE); 

        // returing connection cursor
        return $this->con;
    }

    /*       
     * Function to close db connection
     */
    function close() 
    {
        // closing db connection
        mysqli_close($this->con);
    }   
}

?>
  

Используйте $this->con вместо $con , поскольку $con это переменная класса, и вы используете ее как локальную переменную.

Комментарии:

1. Как вы предложили, я использовал это-> con даже я скопировал ваш ответ, но все еще не работает ..!

2. @Namo, пожалуйста, повторите попытку с приведенным выше кодом, так как я забыл вернуть $this->con , вместо этого я возвращался $con . Если все еще не работает, пожалуйста, укажите, получаете ли вы ту же ошибку, что и Undefined variable: con in C:wampwwwandroid_connectdb_connect.php on line 48

Ответ №2:

Проблема — $con переменная в функции connect() не присваивает значение $con указанной вами общедоступной переменной, и аналогично, в close() функции она не ссылалась на общедоступную переменную.

Измените свою функцию connect как —

 function connect() 
    {
        // import database connection variables
        require_once __DIR__ . '/db_config.php';

        // Connecting to mysql database             
    $this->con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);

        // Selecing database
        $db = mysqli_select_db($con, DB_DATABASE); 
        // returing connection cursor
        return $con;
    }
  

и функция close() как —

 function close() 
    {
    // closing db connection
        mysqli_close($this->con);

    } 
  

Окончательный Код —

 <?php

/**
 * A class file to connect to database
 */
class DB_CONNECT 
{

    private $con;    

    // constructor
    function __construct() 
    {
        // connecting to database
        $this->connect();
    }

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

    /**
     * Function to connect with database
     */
    function connect() 
    {
        // import database connection variables
        require_once __DIR__ . '/db_config.php';

        // Connecting to mysql database             
    $this->con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);

        // Selecing database
        $db = mysqli_select_db($con, DB_DATABASE); 
        // returing connection cursor
        return $con;
    }

   /*       
    * Function to close db connection
    */
    function close() 
    {
    // closing db connection
        mysqli_close($this->con);

    }   
}

?>
  

Комментарии:

1. Как вы предложили, я использовал это-> con даже я скопировал ваш ответ, но все еще не работает ..!