В настоящее время мой код предназначен для подключения к моей базе данных.
<?php
/**
* A class file to connect to database
*/
class DB_CONNECT {
// 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 = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());
// Selecing database
$db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());
// returing connection cursor
return $con;
}
/**
* Function to close db connection
*/
function close() {
// closing db connection
mysql_close();
}
}
?>
db_config.php — это
<?php
define('DB_USER', "root"); // db user
define('DB_PASSWORD', ""); // db password (mention your db password here)
define('DB_DATABASE', "leading10"); // database name
define('DB_SERVER', "localhost"); // db server
?>
при использовании вышеупомянутого кода где-то это показывает предупреждение использовать mysqli или PDO
Я следовал за многими вопросами, связанными со стеком, но все же не смог сделать это успешно.
Один из известных мне методов — использовать символ @ перед mysql_connect (), но в будущем он может не работать.
Любая помощь приветствуется
Как уже написали другие парни, вы должны использовать mysqli_*
функции. Но это не проблема в вашем случае.
Проблема в том, что вы назначаете соединение $con
которая является локальной переменной и, следовательно, — один раз connect()
выходит — значение теряется.
Этот код работает:
class DB_CONNECT
{
private $connection;
private $database;
function __construct() {
$this->connect();
}
function __destruct() {
$this->close();
}
function connect() {
$this->connection = mysqli_connect( DB_SERVER, DB_USER, DB_PASSWORD ) or die(mysql_error());
$this->database = mysqli_select_db( DB_DATABASE ) or die(mysql_error());
}
function close() {
mysqli_close( $this->connection );
}
}
Замечания:
В вашем коде у вас есть дважды or die(...)
в линии.
Используйте это, чтобы отключить отчеты об ошибках
напишите это в верхней части страницы
error_reporting(E_ERROR | E_WARNING | E_PARSE);
вот ссылка для получения дополнительной информации
Это не работает, потому что вы используете mysql, который устарел, измените все mysql на mysqli. Это отредактированная версия вашего кода.
<?php
/**
* A class file to connect to database
*/
class DB_CONNECT {
// 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) or die(mysqli_error());
// Selecing database
$db = mysqli_select_db(DB_DATABASE) or die(mysqli_error());
// returing connection cursor
return $con;
}
/**
* Function to close db connection
*/
function close() {
// closing db connection
mysqli_close();
}
}
?>