[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка
Гость_Роман
На странице сайта выдает ошибку:

Strict Standards: Accessing static property demand::$db as non static in /home/usr/data/ongames/reggbi.ongames.aux.su/mc/cls/class.demand.php on line 27

Strict Standards: Accessing static property demand::$db as non static in /home/usr/data/ongames/reggbi.ongames.aux.su/mc/cls/class.demand.php on line 28


Вот сами строки:

$this->db = new PDO('mysql:host='.$this->dbOptions['host'].';dbname='.$this->dbOptions['dbName'],$this->dbOptions['login'],$this->dbOptions['pass']);
$this->db->exec('SET NAMES utf8');


Что не так прописано, помогите пожалуйста?!
Dagot
Постав значок доллара "$" ($this->$db = new PDO('mysq) перед db

_____________
аська 615-817, стучите начинающие прогеры, будем вместе прорываться)
N0ob
Strict Standards: Accessing static property demand::$db as non static in[quote]
Это говорит о том, что ты вызываешь переменную $db из класса как статическую, а она как таковой не является. Сделай ее статической!
ilyaplot

self::$db = new PDO('mysql:host='.$this->dbOptions['host'].';dbname='.$this->dbOptions['dbName'],$this->dbOptions['login'],$this->dbOptions['pass']);
self::$db->exec('SET NAMES utf8');


Цитата
Это говорит о том, что ты вызываешь переменную $db из класса как статическую, а она как таковой не является. Сделай ее статической!

Наоборот. "Обращение к статической переменной demand::$db как к не статической."

_____________
Заработай на Userator
N0ob
Попутал маленько. С кем не бывает smile.gif
Guest
Не помогло :(

Если это поможет, вот весь код файла:


<?php 
class
demand {

private $dbOptions;
private $randQuery;
private $countText;
private static $db = null;

// Метод для создания объекта
public static function getDb()
{
if (null === self::$db)
self::$db = new self();
return self::$db;
}

// Запрещаем копирование объекта
private function __copy () {}

// Запрещаем прямое создание объекта
private function __construct ()
{
try
{
// настройки системы
$this->dbOptions = config('db');
$this->db = new PDO('mysql:host='.$this->dbOptions['host'].';dbname='.$this->dbOptions['dbName'],$this->dbOptions['login'],$this->dbOptions['pass']);
$this->db->exec('SET NAMES utf8');
}
catch (PDOException $e)
{
die("Error: ".$e->getMessage());
}
}


// Подготовка вывода случайных строк
function rand($limit='1')
{
$limit = veriNumber($limit);
$this->randQuery = 'ORDER BY RAND() LIMIT '.$limit;
}

// Подготовка вывода количества строк по запросу
function setCount()
{
$this->countText = 'count(1)';
}

// Подготовка вывода количества строк по запросу
function setWhere($where)
{
$this->where = $where;
}

// Запрос к таблицам
function query($id,$table,$chain=false,$nameId='id',$column='*',$order='',$limit='')
{
#echo $id.' - '.$table.' - '.$chain.' - '.$nameId.' <br/>';
if ($table=='manager') $table = 'users';
elseif ($table=='ban') $table = 'ban';
else $table = $this->dbOptions['prefix'].$table;
$where = '';
if (empty($this->where))
{
if ($id!='')
{
if (!is_array($id))
{
// Если искомая величина не массив, а назания массив
if (is_array($nameId))
{
$where = 'where ';
for ($i=0;$i<count($nameId);$i++)
{
$where .= '`'.$nameId[$i].'` = \''.my_esc($id).'\'';
if (!empty($nameId[$i+1])) $where .= ' or ';
}
}

// Если ни то, ни другое не являются массивом
else
if
($id=='0' || !empty($id)) $where = 'where `'.$nameId.'` = \''.my_esc($id).'\'';
}
else
{
$where = 'where ';
// Если искомая величина массив и название колонки массив, то перебираем пары и составляем запрос с and
if (is_array($nameId))
{
for ($i=0;$i<count($id);$i++)
{
$where .= '`'.$nameId[$i].'` = \''.my_esc($id[$i]).'\'';
if (!empty($nameId[$i+1])) $where .= ' and ';
}
}

else
{
// Если же искомая величина массив а название колонки нет, то перебираем пары и составляем запрос с or
for ($i=0;$i<count($id);$i++)
{
$where .= '`'.$nameId.'` = \''.my_esc($id[$i]).'\'';
if (isset($id[$i+1])) $where .= ' or ';
}
}
}
}
}

else
{
$where = 'where '.$this->where;
$this->where = '';
}

if (!empty($limit)) $limit = 'limit '.$limit.'';
if (!empty($order)) $order = 'order by '.$order.'';
if (!empty($this->countText)) $column = $this->countText;
if (empty($this->randQuery)) $sth = $this->db->query('select '.$column.' from `'.$table.'` '.$where.' '.$order.' '.$limit.';');
else
{
$sth = $this->db->query('select '.$column.' from `'.$table.'` '.$where.' '.$this->randQuery.';');
#echo 'select '.$column.' from `'.$table.'` '.$this->randQuery.';<br/>';
$this->randQuery = '';
}
$fp = fopen("log.txt", "a"); // Открываем файл в режиме записи
$mytext = 'select '.$column.' from `'.$table.'` '.$where.' '.$order.' '.$limit.';<br/>'; // Исходная строка
$test = fwrite($fp, $mytext); // Запись в файл
fclose($fp);
#echo 'select '.$column.' from `'.$table.'` '.$where.' '.$order.' '.$limit.';<br/>';
// устанавливаем PDO в режим создания объектов класса страны


$result = array();
if (empty($this->countText))
{

$tt = explode ('_',$table);
if ($tt[0]=='users') $tt[1] = 'manager';
$sth->setFetchMode(PDO::FETCH_CLASS, $tt[1]);
while($obj = $sth->fetch())
{
// Подгрузка дополнительных объектов по требованию
if($chain!=false) $obj->addition($chain);
array_push($result,$obj);
}

}

else
{
$sth->setFetchMode(PDO::FETCH_NUM);
$result = $sth->fetch();
$this->countText = '';
}

return $result;
}

// Обновление записи в базе данных
function update ($table,$column,$value,$id,$idName='id')
{
$data['column'] = my_esc($column);
if (is_array($value))
{
$stq = '';
foreach ($value as $key => $val)
{
$stq .= "`$key`='$val',";
}
$set = cutLastComma($stq);
}
else $data['value'] = my_esc($value);
$data['id'] = my_esc($id);
$data['idName'] = my_esc($idName);
if ($table!='manager') $data['table'] = my_esc($this->dbOptions['prefix'].$table);
else $data['table'] = 'users';
#echo "UPDATE `$data[table]` SET `$data[column]`='$data[value]' WHERE `$data[idName]` = '$data[id]'";
if (is_array($value))
{
#echo "UPDATE `$data[table]` SET $set WHERE `$data[idName]` = '$data[id]'<br/>";
$this->db->query("UPDATE `$data[table]` SET $set WHERE `$data[idName]` = '$data[id]'");
}
else $this->db->query("UPDATE `$data[table]` SET `$data[column]`='$data[value]' WHERE `$data[idName]` = '$data[id]'");
}

// Обновление записи в базе данных
function salaryUpdate ($table,$column,$value,$id,$idName='id')
{
if (is_array($value))
{
$str = '';
foreach ($value as $key => $val)
{
$str .= "`$key`=$key-$val,";
}
$set = cutLastComma($str);
} else $data['value'] = my_esc($value);
$data['column'] = my_esc($column);
$data['id'] = my_esc($id);
$data['idName'] = my_esc($idName);
$data['table'] = my_esc($this->dbOptions['prefix'].$table);
if (is_array($value))
{
#echo "UPDATE `$data[table]` SET $set WHERE `$data[idName]` = '$data[id]'<br/>";
$this->db->query("UPDATE `$data[table]` SET $set WHERE `$data[idName]` = '$data[id]'");
} else $this->db->query("UPDATE `$data[table]` SET `$data[column]`= $data[column] - $data[value] WHERE `$data[idName]` = '$data[id]'");
}

function insert ($table,$columns,$values)
{
$data['column'] = '';
$data['value'] = '';
foreach ($columns as $column)
{
$data['column'] .= '`'.my_esc($column).'`,';
}
$data['column'] = substr($data['column'],0,strlen($data['column'])-1);
foreach ($values as $value)
{
$data['value'] .= '\''.my_esc($value).'\',';
}
$data['value'] = cutLastComma($data['value']);
$data['table'] = my_esc($this->dbOptions['prefix'].$table);
#echo "INSERT INTO `$data[table]` ($data[column]) VALUES ($data[value])";
$this->db->query("INSERT INTO `$data[table]` ($data[column]) VALUES($data[value])");
}
function delete ($table,$where)
{
$data['where'] = '';
foreach ($where as $key=>$value)
{
if (!empty($data['where'])) $data['where'] .=" AND ";
$data['where'] .= '`'.my_esc($key).'`=\''.$value.'\'';
}
$data['table'] = my_esc($this->dbOptions['prefix'].$table);
#echo "DELETE FROM `$data[table]` WHERE $data[where]";
$this->db->query("DELETE FROM `$data[table]` WHERE $data[where]");
}
}


?>

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.