#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 даже я скопировал ваш ответ, но все еще не работает ..!