Невозможно подключиться к MySQL с помощью переполнения стека

При попытке подключиться через PHP он отображает

Предупреждение: mysqli_connect (): (HY000 / 1044): для пользователя » @ ‘localhost’ запрещен доступ к базе данных ‘bookedscheduler’ в C: \ wamp \ www \ booked \ lib \ Database \ MySQL \ MySqlConnection.php в строке 52

Предупреждение: mysqli_select_db () ожидает, что параметр 1 будет mysqli, логическое значение указано в C: \ wamp \ www \ booked \ lib \ Database \ MySQL \ MySqlConnection.php в строке 53

Предупреждение: mysqli_set_charset () ожидает, что параметр 1 будет mysqli, логическое значение указано в C: \ wamp \ www \ booked \ lib \ Database \ MySQL \ MySqlConnection.php в строке 54

Невозможно изменить информацию заголовка — заголовки, уже отправленные (вывод начался с C: \ wamp \ www \ booked \ lib \ Database \ MySQL \ MySqlConnection.php: 53) в C: \ wamp \ www \ booked \ Pages \ Page.php на линия 138

Мой config.php
подключение к базе данных

$conf['settings']['database']['type'] = 'mysql';

$conf['settings']['database']['user'] = 'booked_user';

$conf['settings']['database']['password'] = '';

$conf['settings']['database']['hostspec'] = '127.0.0.1';

$conf['settings']['database']['name'] = 'bookedscheduler';

Mysqlconnection.php file

class MySqlConnection implements IDbConnection
{
private $_dbUser = '';
private $_dbPassword = '';
private $_hostSpec = '';
private $_dbName = '';

private $_db = null;
private $_connected = false;

/**
* @param string $dbUser
* @param string $dbPassword
* @param string $hostSpec
* @param string $dbName
*/
public function __construct($dbUser, $dbPassword, $hostSpec, $dbName)
{
$this->_dbUser = $dbUser;
$this->_dbPassword = $dbPassword;
$this->_hostSpec = $hostSpec;
$this->_dbName = $dbName;
}

public function Connect()
{
if ($this->_connected && !is_null($this->_db))
{
return;
}

$this->_db = mysqli_connect($this->_hostSpec, $this->_dbUser, $this->_dbPassword,$this->_dbName);
$selected = mysqli_select_db($this->_db, $this->_dbName);
mysqli_set_charset($this->_db, 'utf8');

if (!$this->_db || !$selected)
{
throw new Exception("Error connecting to database\nError: " . mysql_error());
Log::Error("Error connecting to database\n%s",  mysql_error());
}

$this->_connected = true;
}

public function Disconnect()
{
mysqli_close($this->_db);
$this->_db = null;
$this->_connected = false;
}

public function Query(ISqlCommand $sqlCommand)
{
mysqli_set_charset($this->_db, 'utf8');
$mysqlCommand = new MySqlCommandAdapter($sqlCommand, $this->_db);

Log::Sql('MySql Query: ' . str_replace('%', '%%', $mysqlCommand->GetQuery()));

$result = mysqli_query($this->_db, $mysqlCommand->GetQuery());

$this->_handleError($result);

return new MySqlReader($result);
}

public function LimitQuery(ISqlCommand $command, $limit, $offset = 0)
{
return $this->Query(new MySqlLimitCommand($command, $limit, $offset));
}

public function Execute(ISqlCommand $sqlCommand)
{
mysqli_set_charset($this->_db, 'utf8');
$mysqlCommand = new MySqlCommandAdapter($sqlCommand, $this->_db);

Log::Sql('MySql Execute: ' . str_replace('%', '%%', $mysqlCommand->GetQuery()));

$result = mysqli_query($this->_db, $mysqlCommand->GetQuery());

$this->_handleError($result);
}

public function GetLastInsertId()
{
return mysqli_insert_id($this->_db);
}

private function _handleError($result, $sqlCommand = null)
{
if (!$result)
{
if ($sqlCommand != null)
{
echo $sqlCommand->GetQuery();
}
throw new Exception('There was an error executing your query\n' .  mysql_error());

Log::Error("Error executing MySQL query %s",  mysql_error());
}
return false;
}
}

class MySqlLimitCommand extends SqlCommand
{
/**
* @var \ISqlCommand
*/
private $baseCommand;

private $limit;
private $offset;

public function __construct(ISqlCommand $baseCommand, $limit, $offset)
{
parent::__construct();

$this->baseCommand = $baseCommand;
$this->limit = $limit;
$this->offset = $offset;

$this->Parameters = $baseCommand->Parameters;
}

public function GetQuery()
{
return $this->baseCommand->GetQuery() . sprintf(" LIMIT %s OFFSET %s",  $this->limit, $this->offset);
}

}
?>

Пожалуйста, кто-нибудь направит меня в этом отношении

1

Решение

Это очень просто, и я даю вам проверенный ответ, сначала вам нужно создать класс Database, как показано ниже, вам нужно поместить его в файл и включить его со своей домашней страницы (это может быть страница index.php). Затем вам нужно инициировать экземпляр вашего класса с домашней страницы, чтобы подключиться к базе данных, код очень хорошо объяснен в деталях в этой замечательной статье: www.muwakaba.com/php-database-connection

<?php
// Class definition
class Database{

// The constructor function
public function __construct(){
// The properties
$this->host = "your_DB_host_address";
$this->login = "your_DB_login_name";
$this->password = "your_DB_password";
$this->name = "your_DB_name";

// The methods
$this->connect();
$this->select();
}

// The connect function
private function connect(){
$this->connection = mysql_connect($this->host, $this->login, $this->password) or die("Sorry! Cannot connect to the database");
}

// The select function
private function select(){
mysql_select_db($this->name, $this->connection);
}

}
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]