Muhim xato: CodeIgniter-da faol yozuvlar ishlatilganda a'zo funktsiyasini qo'shish () ga qo'ng'iroq qiling

Mumkin bo'lgan ikki nusxadagi:    Nomaqbul elementda a'zo funktsiyasiga qo'ng'iroq qilish Foydalanuvchining profili    Nomaqbul elementda a'zo funktsiyasiga qo'ng'iroq qilish

CodeIgniters Active yozuvlar yordamida ma'lumotlar bazasiga kirishga harakat qilsam, u doim xatolarga yo'l qo'yadi

Muhim xato: Ob'ekt bo'lmagan obyektga a'zo funktsiyasini qo'shish() ga qo'ng'iroq qiling.

     

Muhim xato: Ob'ekt bo'lmagan obyektda get() funktsiyasiga qo'ng'iroq qilish

quyida ma'lumotlar bazasidagi sozlamalar

$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;

va men uni avtomatik ravishda yukladim

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

va quyida mening modelim

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;
        }


    }
}

kimdir meni noto'g'ri qilyapman va menga nima uchun bunday xatoga yo'l qo'ymoqchiman?

1
Muhim xato: 14-satrda C: \ wamp \ www \ quest \ application \ models \ leads_model.php dagi ob'ektga a'zo funktsiyasini qo'shish() ga qo'ng'iroq qiling. Shakl yuborilganda ushbu $ - db-> get() funktsiyasini chaqiraman. Kuzatuv nazoratchidan yaxshi yuklaydi, lekin men uni topshirganimda xatoni qabul qilaman.
qo'shib qo'ydi muallif LiveEn, manba
$ This-> db-> get() deb qidirasiz? Ushbu modelga nisbatan ishonchingiz komilmi?
qo'shib qo'ydi muallif Damien Pirsy, manba

3 javoblar

Ota-konstruktorni qidiryapsizmi?

class Leads_model extends CI_Model 
{
    function __construct()
    {
        parent::__construct();
    }
   ...
}
2
qo'shib qo'ydi
Ha, u allaqachon chaqirilgan.
qo'shib qo'ydi muallif LiveEn, manba

Haqiqatdan ham ajablanarli narsa. Ishonch hosil qiling: 1) sizning xatoingiz ushbu modeldagi emas, boshqasiga emas; 2) Modeldagi __construct() ni chaqirasiz

Agar ushbu tekshiruvlarning har ikkalasi ham o'tkazilsa, vaqtni tejashga harakat qiling va muammoni hal qila olmaysiz.

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();
  }

}

Bundan tashqari, funktsiyalar aloqa kimligini sinov sifatida qaytarishini tekshirishingiz mumkin:

  $dbobject = $this->load->database('default',TRUE);
  var_dump($dbobject->conn_id);
1
qo'shib qo'ydi
(33) turi (mysql havolasi doimiy) "
qo'shib qo'ydi muallif LiveEn, manba
Avtoto'liq ishni bajarish uchun model yadroga ba'zi o'zgaruvchilar qo'shdim. Keyin men har bir narsa yaxshi ish olib tashlash. Yordam uchun katta rahmat. ammo tutilishi avtomatik ravishda ishlamaydi.
qo'shib qo'ydi muallif LiveEn, manba
OK, shuning uchun sinf yaxshi ishlaydi va aloqa o'rnatiladi. AS IS yuqorida taklif qilgan run_test() funktsiyasini ishga tushirishga harakat qilsangiz (faqat tablename, obvga o'zgartirish). U hali ham xatoliklarni keltirib chiqarmayaptimi
qo'shib qo'ydi muallif Damien Pirsy, manba
IDE-ni o'zgartiring yoki odatdagidan chiqishni boshlang: D va yadrolarni o'zgartirganda ehtiyot bo'ling!
qo'shib qo'ydi muallif Damien Pirsy, manba

Muammoni avtotashkil etish ishini model yadroga olish uchun ba'zi o'zgaruvchilarni qo'shib qo'ygan edim. Bu muammoni keltirib chiqarganidan keyin va uning ishlashiga sabab bo'ldi.

ammo avtoulov tugallanmagan bo'lsa, endi ishlamayapti.

0
qo'shib qo'ydi
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin