Fatal error: CodeIgniter ішіндегі белсенді жазбаларды пайдаланғанда, функцияның insert () элементіне қоңырау шалыңыз

Possible Duplicate:
Call to a member function on a non-object
Call to a member function on a non-object

Мен CodeIgniters Active жазбаларын пайдаланып дерекқорға қол жеткізуге тырысқанда, ол маған әрдайым қате береді

Қате қателігі: объект емес функцияға insert() функциясына қоңырау шалу

     

Fatal error: Нысанды емес

функциясына get() функциясына шақыру

Төменде менің дерекқордағы баптаулар бар

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'test';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

және мен оны автоматты түрде қотарып алдым

$autoload['libraries'] = array('database','session');

және менің үлгіім төмен

class Leads_model extends CI_Model {

function __construct()
  {
    parent::__construct();
  }

    function insertq(){

        $q=$this->db->insert('test',$data);

        if ($q){

            return true;
        }       
        else
        {
            return false;
        }


    }
}

біреу маған қателесіп не істеп жатқанын және неге бұл қатені аламын деп өтінемін?

1
Fatal error: C: \ wamp \ www \ quest \ application \ models \ leads_model.php тармағында 14-ші жолда нысан емес функцияға кірістіру (). Мен $ this-> db-> get() пішінін жіберген кезде шақырамын. Көрініс контроллерден жақсы жүктеледі, бірақ мен жіберген кезде қатені аламын.
қосылды автор LiveEn, көзі
$ This-> db-> get() деп қай жерден шақырасыз? Сіз бұл үлгіге қатысы барсыз ба?
қосылды автор Damien Pirsy, көзі

3 жауаптар

Ата-аналар конструкторын шақырасыз ба?

class Leads_model extends CI_Model 
{
    function __construct()
    {
        parent::__construct();
    }
   ...
}
2
қосылды
иә .. оның қазірдің өзінде шақырылды.
қосылды автор LiveEn, көзі

Шындығында бұл өте қызық. Сенімді болу: 1) сіздің қателігіңіз басқа модельге емес, сол модельге қатысты; 2) Үлгіде __construct() деп аталады

Егер осы екі тексерулердің екеуі де өткізілсе, уақытты жүктеп көріп көріңіз және мәселе шешіле ме, жоқ па?

class Leads_model extends CI_Model {

  function __construct()
  {
    parent::__construct();
  }

  function test()
  {
    $this->load->database();
    $data = array('field1' => 'value1','field2' => 'value2');
    $this->db->insert('test',$data);
  }

  function run_test()
  {
     $dbo = $this->load->database('default',TRUE);
     $query = $this->$dbo->get('tablename');
     echo $query->num_rows();
  }

}

Сондай-ақ, функциялардың байланыс идентификаторын сынақ ретінде қайтаратынын көруге болады:

  $dbobject = $this->load->database('default',TRUE);
  var_dump($dbobject->conn_id);
1
қосылды
Мен қоқысқа шыққанда «resource (33) type (mysql link persistent)»
қосылды автор LiveEn, көзі
Мен автоматты түрде толық жұмыс алу үшін модельдің ядросына айнымалы қосылдым. кейін бәрі жақсы жұмыс істейтінін жою. Көмек үшін үлкен рахмет. бірақ тұтылудағы автоматты толтырылмайды.
қосылды автор LiveEn, көзі
Жақсы, сынып жақсы жұмыс істейді және байланыс орнатылды. Жоғарыда ұсынылған run_test() функциясын іске қосуға тырысып көріңізші (жай ғана таблетка, obv). Қарамастан, ол әлі де қате жібереді
қосылды автор Damien Pirsy, көзі
IDE-ді өзгертіңіз немесе әдеттен тыс жазуды бастаңыз: D Өзегін өзгерткен кезде сақ болыңыз!
қосылды автор Damien Pirsy, көзі

Мәселе менің автокомпьютер жұмысын модельдік ядроға алу үшін кейбір айнымалыларды қосып отырдым. Бұл мәселені тудырғаннан кейін және оның жұмысын жойды.

бірақ автокөлік толығымен қазір жұмыс істемейді.

0
қосылды