【发布时间】:2015-04-14 18:52:32
【问题描述】:
我是 codeigniter 的新手,这是我的第一个模型控制器连接,所以您提出的任何建议对我都有帮助,并且会考虑点以供我将来理解,请在此处帮助解决
Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\xampp\ci\CI_test\application\models\testquery.php on line 7
我的控制器:
class Testdb extends CI_Controller
{
public function Index()
{
$this->load->model("testquery");
$data['results'] = $this->testquery->query1();
$this->load->view("view_db");
}
}
我的模特是:
class Testquery extends CI_Model
{
public function query1()
{
$query = $this->db->query("SELECT * from color"); //this is line 7 error
/**
$sql = "SELECT * from color";
$query = $this->db->query($sql);
foreach ($query->result() as $row)
{
echo $row->color_id;
echo $row->color_name;
echo $row->color_desc;
}
*/
return $query->result();
}
}
我的看法是:
<<!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
</head>
<body>
<h1>Welcome db</h1>
<?php
print_r($results);
?>
</body>
</html>
我的连接详情:
config/database.php 有-
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'varundb';
$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;
我的 config/autoload.php 有-
$autoload['libraries'] = array('database');
我错过了什么吗?我也浏览过其他帖子 人们建议的地方-
- 在我使用 db 的每个函数中加载数据库。
- 不要链接查询(完成后我会尝试)。
- 更改组名。
我正在使用 XAMPP 服务器,数据库很好(我看到了表,其中的数据)。 做了所有,我仍然得到错误!
【问题讨论】:
-
能否请您显示加载数据库的行。
-
感谢@Whirlwind 的回复,但是,它会在哪里?我还没有加载任何我的模型或控制器或视图?你能建议怎么做吗?
-
这个错误表明你的数据库没有加载。我看到你已经在自动加载时加载了数据库。在这种情况下,检查你的数据库配置是否正常,比如用户名 dbname dbdriver 等。
-
哦,是的,他正在使用自动加载。 @varunkumar - 有两种加载数据库的方法。使用自动加载或 $this->load->database();显然,您使用的是自动加载方法,所以按照 Shaiful Islam 的指示进行操作。
-
我必须做什么@ShaifulIslam 你能给我具体的吗?我正在努力理解和学习
标签: php mysql codeigniter codeigniter-2