Cześć wszystkim,
mam problem z podpięciem bazy danych. Strona przestała działać wskutek omyłkowo zmienionego hasła w home.pl, otrzymuję taki oto komunikat:
Kod
Błąd podczas próby nawiązania połącznia z hostem: mysql:host=localhost;dbname=11898081!
SQLSTATE[28000] [1045] Access denied for user '11898081'@'localhost' (using password: YES)
Fatal error: Call to a member function query() on a non-object in /libs/Aero/PDO/simple.php on line 89
Nie mam pojęcia, gdzie owe hasło wpisać:
<?php
{
private static $_instance = null;
protected $_pdo = null; // obiekt PDO, połączenie z baza danych
protected $_stmt = null; // ostatnio zwrócony statement
/**
* array( 'dsn' => string,
* 'username' => string,
* 'password' => string,
* 'host' => string
* 'name' => string
* 'driver' => string
* charset => string
* );
*
* @var array
*/
protected
$_config = array();
public function __construct
(array $config) {
if (empty($config['driver'])) $config['driver'] = 'mysql'; if (empty($config['host'])) $config['host'] = 'localhost'; if (empty($config['charset'])) $config['charset'] = 'UTF-8'; if (empty($config['username'])) $config['username'] = $config['user']; if (empty($config['password'])) $config['password'] = $config['pass']; if (empty($config['dsn'])) $config['dsn'] = $config['driver'].':host='.$config['host'].';dbname='.$config['name'];//.';charset='.$config['charset'];
$this->_config = $config;
}
public function pdo() // pobiera obiekt pdo i przy okazji nawiązuje połączenie
{
if ($this->_pdo == null) { // nawiąż połączenie
try {
$this->_pdo
= new PDO
($this->_config
['dsn'], $this->_config
['username'], $this->_config
['password'], array( PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
$this->exec("SET NAMES 'utf8'");
} catch (PDOException $e) {
echo 'Błąd podczas próby nawiązania połącznia z hostem: '.$this->_config
['dsn'].'!<br />'; }
}
return $this->_pdo;
}
/*
PDO::FETCH_ASSOC
zwraca tablice z kluczami odzwierciedlającymi nazwy kolumn
PDO::FETCH_BOTH (domyślny)
zwraca tablice z kluczami jako nazwy kolumn oraz jako kolejny numer kolumny
PDO::FETCH_NUM
kolejne wartości zwróconego wiersza znajdują się pod kolejnymi kluczami począwszy od 0
PDO::FETCH_OBJ
zwraca nam wiersz jako anonimowy obiekt z własnościami o nazwach kolumn
*/
// Pobiera 1 wiersz
public function fetch($sql, $mode = PDO::FETCH_ASSOC)
{
try {
$this->_stmt = $this->pdo()->query($sql);
} catch (PDOException $e) {
if (DEBUG_MODE) {
$errors = $this->_stmt->errorInfo();
echo '<b>PDO ERROR</b><br />' ; echo ''.$sql.'<br /><br />'; echo 'ERROR: '.$errors[2].'<br /><br />'; echo 'TRACE: '.str_replace('#', '<br />#', $e->getTraceAsString()).'<br />'; }
}
return $this->_stmt->fetch($mode);
}
// Pobiera wszystkie wiersze
public function fetchAll($sql, $mode = PDO::FETCH_ASSOC)
{
try {
$this->_stmt = $this->pdo()->query($sql);
} catch (PDOException $e) {
if (DEBUG_MODE) {
$errors = $this->_stmt->errorInfo();
echo '<b>PDO ERROR</b><br />' ; echo ''.$sql.'<br /><br />'; echo 'ERROR: '.$errors[2].'<br /><br />'; echo 'TRACE: '.str_replace('#', '<br />#', $e->getTraceAsString()).'<br />'; }
}
return $this->_stmt->fetchAll($mode);
}
// Zlicza ilość wierszy
public function rowCount($sql = null)
{
if ($sql == null) { // pobierz z ostatnio wykonanego zapytania
return (int)$this->_stmt->rowCount();
}
try {
$this->_stmt = $this->pdo()->query($sql);
} catch (PDOException $e) {
if (DEBUG_MODE) {
$errors = $this->_stmt->errorInfo();
echo '<b>PDO ERROR</b><br />' ; echo ''.$sql.'<br /><br />'; echo 'ERROR: '.$errors[2].'<br /><br />'; echo 'TRACE: '.str_replace('#', '<br />#', $e->getTraceAsString()).'<br />'; }
}
return (int)$this->_stmt->rowCount();
}
public function exec($sql) {
try {
$result = $this->pdo()->exec($sql);
} catch (PDOException $e) {
if (DEBUG_MODE) {
$errors = $this->_stmt->errorInfo();
echo '<b>PDO ERROR</b><br />' ; echo ''.$sql.'<br /><br />'; echo 'ERROR: '.$errors[2].'<br /><br />'; echo 'TRACE: '.str_replace('#', '<br />#', $e->getTraceAsString()).'<br />'; }
}
return $result;
}
public function lastInsertId()
{
return $this->pdo()->lastInsertId();
}
public function beginTransaction()
{
$this->pdo()->beginTransaction();
}
public function rollBack()
{
$this->pdo()->rollBack();
}
public function commit()
{
$this->pdo()->commit();
}
{
if (count($config) == 0
|| !is_array($config)) throw
new Exception
('Brak konfiguracji bazy danych');
self::$_instance = new self($config);
}
return self::$_instance;
}
}
?>
Dzięki z góry za wszelką pomoc :)