这是我第一次尝试在CodeIgniter中编码。问题是它无法从数据库中检索数据。它抛出的错误是:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Site::$db
Filename: core/Model.php
Line Number: 51
我可以理解在core/model.php
的那一行中要改变什么。
这是另一个错误:
Fatal error: Call to a member function query() on a non-object in C:\wamp\www\CI_one\application\models\site_model.php on line 9
<?php
class Site extends CI_Controller {
function datta(){
$this->load->model('site_model');
$get = $this->site_model->getValues();
$data['get'] = $get;
$this->load->view('data3',$data);
}
}
<?php
class site_model extends CI_Model{
function index(){
echo "default index";
}
function getValues(){
$query = $this->db->query("select * from nav_menu");
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
echo $row->c1;
echo $row->m2;
echo $row->d3;
}
}
return array(
"name" => "nameless",
"form" => "formless",
"age" => "ageless");
}
}
我在app/config/database.php
。
我如何使这项工作?
我自己解决了。我擦掉了并按如下方式重新编码以获得结果......
<?php
class Site extends CI_Controller {
function datta(){
$this->load->database();
$this->load->model('site_model');
$get = $this->site_model->getValues();
$data['get'] = $get;
$this->load->view('data3',$data);
}
}
模型为
<?php
class site_model extends CI_Model{
function index(){
echo "default index";
}
function getValues(){
$query = $this->db->query("select * from nav_menu");
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
echo $row->c1;
echo $row->m2;
echo $row->d3;
}
}
return array(
"name" => "nameless",
"form" => "formless",
"age" => "ageless");
}
}
答案 0 :(得分:2)
在Codeigniter中,您必须手动加载DB库,如下所示:
$this->load->database();
或者你必须按照sandip的说法自动加载库。
在您的应用程序中,您可能需要自动加载多个库和帮助程序,因此不是手动加载它们,而是自动加载是最佳做法。请在这里阅读有关自动加载的信息。
http://ellislab.com/codeigniter/user-guide/general/autoloader.html
另请阅读其余文档,您将从那里了解有关CI的所有信息。它简单,简洁,并有例子。
希望这会有所帮助。
答案 1 :(得分:0)
请在CodeIgniter控制器中写一个构造函数:
public function __construct() {
parent::__construct();
}
除此之外:
您必须先加载数据库库。在
autoload.php:
$autoload[‘libraries’] = array(‘database’);
或者在控制器构造函数中:
$this->load->database();
我希望它会有所帮助!
答案 2 :(得分:0)
试试这个:
控制器:
<?php
class Site extends CI_Controller {
function datta(){
$this->load->database();
$this->load->model('site_model');
$get=$this->site_model->getValues();
$data['get']=$get;
$this->load->view('data3',$data);
}
}