Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с ООП в PHP 
:(
    Опции темы
Win MK 32
Дата 14.2.2014, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Такое ощущение, что подключение к БД не берется из первого класса. А хотелось бы. Как исправить?
Цитата
Fatal error: Call to a member function prepare() on a non-object in /home/ox2273/htdocs/cms/helpers/SGMind.php on line 176

Код

<?php
class sgm_queries{
    private $dbconnection;
    private $sql;
    //...    
    public function __construct($dbh=NULL){
        if(is_null($dbh)) $dbh = Record::getConnection();
        $this->dbconnection = $dbh;
    }
    
    public function __destroy(){
        $this->dbconnection = null;
    }
    
    public function to_command($words){
        $words = mb_strtolower($words,'UTF-8');
        $words = explode(" ",$words);
        foreach($words as $number => $word){
            if(in_array($word,$this->keywords)){
                $keywords[$number] = $word;
                $ids_of_keywords[] = $number;
            }
        }
        foreach($ids_of_keywords as $number2 => $keyword_number){
            $my_next = array_search($words[$ids_of_keywords[$number2+1]-1],$words)-($keyword_number+1)+1;
            if((!$my_next)OR($my_next<0)) $my_next = count($words)-1;
            $length_of_string = $my_next - $keyword_number; 
            $values[$keyword_number] = implode(" ", array_slice($words,$keyword_number+1,$length_of_string));
        }
        $c = array_combine($keywords,$values);
        return $c;
    }
        //...
}
    
class sgm_todo2 extends sgm_queries{
    public function to_array($c){
        if(array_key_exists('выполнено',$c)) $c['выполнено'] = "1";
        if(array_key_exists('срочно',$c)) $c['срочно'] = "1";
        if($c['дело']=="") $c['дело'] = $c['задача'];
        $data['text'] = $c['дело'];
        $data['done'] = $c['выполнено'];
        $data['quickly'] = ($c['срочно'] ? $c['срочно'] : "");
        $data['priority'] = ($c['приоритет'] ? $c['приоритет'] : "");
        $data['date'] = ($c['выполнить'] ? $c['выполнить'] : "");
        $data['iteration'] = ($c['повтор'] ? $c['повтор'] : "");
        $data['date_add'] = 0;
        $data['date_done'] = 0;
        return $data;
    }
    
    public function add_array($data){
        $this->query = $this->dbconnection->prepare("INSERT INTO sgm_todo (text, done, quickly, priority, date, iteration, date_add, date_done)VALUES(:text, :done, :quickly, :priority, :date, :iteration, :date_add, :date_done);");
        return $this->query->execute($data);
    }
    
    public function add_command($c){
        $c_array = $this->to_array($c);
        $this->add_array($c_array);
    }
    
    public function add_string($string){
        $command = $this->to_command($string);
        $this->add_command($command);
    }
}    
?>
<?PHP
$query = new sgm_queries();
$todo = new sgm_todo2();

$c_string = "задача попробовать статично вызвать метод из класса запросов выполнено";
$c_command = $todo->to_command($c_string);
$c_result = $todo->add_command($c_command);
print_r($c_result);
?>

PM   Вверх
AJIeKceuD
Дата 14.2.2014, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.9.2012

Репутация: нет
Всего: нет



private $dbconnection;

private говорит что свойство видно только самому классу. Попробуй поменять на protected.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.