【问题标题】:can't access Codeigniter database [closed]无法访问 Codeigniter 数据库 [关闭]
【发布时间】:2013-05-29 02:38:37
【问题描述】:

我正在创建一个网站,我一直在尝试连接到数据库,我真的找不到问题。我只需要从我的数据库“bcjobs”中获取所有“job_desc”,然后用户可以单击“job_desc”让他能够查看工作的全部详细信息。这是我的代码

型号:

<?php

class Jobs_model extends CI_Model {

    public function __construct() {
        $this->load->database();
    }


        public function get_job($slug = FALSE){
            if($slug === FALSE){
                $query = $this->db->get('employer_postjob');
                return $query->result_array();

            }
            $query = $this->db->get_where('employer_postjob',array('job_desc'=>$slug));
            return $query->row_array();
        }

}

?>

控制器:

<?php

class Jobs extends CI_Controller {

    public function __contruct() {
        parent::__construct();
        $this->load->model('jobs_model');
    }

    public function index() {
        $data['job'] = $this->jobs_model->get_job();
        $data['title'] = 'Job List';

        $this->load->view('templates/header', $data);
        $this->load->view('templates/navigation', $data);
        $this->load->view('joblist/index', $data);
        $this->load->view('templates/footer', $data);
    }

    public function view($slug) {
        $data['job_item'] = $this->jobs_model->get_job();

        if (empty($data['job_item'])) {
            echo "no data";
        }

        $data['title'] = $data['job_item']['title'];

        $this->load->view('templates/header', $data);
        $this->load->view('templates/navigation', $data);
        $this->load->view('joblist/view', $data);
        $this->load->view('templates/footer', $data);
    }

}

?>

应用程序/视图/joblist/index.php:

<?php foreach ($job as $job_item): ?>

    <h2><?php echo $job_item['title'] ?></h2>
    <div id="main">
        <?php echo $job_item['text'] ?>
    </div>
    <p><a href="joblist/<?php echo $job_item['slug'] ?>">View article</a></p>

<?php endforeach ?>

应用程序/views/joblist/view.php:

<?php
echo '<h2>'.$job_item['title'].'</h2>';
echo $job_item['text'];

路线:

$route['jobs/(:any)'] = 'joblist/$1';
$route['jobs'] = 'joblist';
$route['(:any)'] = 'pages/$1';
$route['default_controller'] = 'pages';

【问题讨论】:

  • 有什么问题?你得到结果了吗?你有错误吗?您是否在 config/database.php 文件中连接了您的数据库?
  • 是的,我已经配置了数据库,它显示错误 404 page not found
  • 您尝试连接的数据库用户是否有权远程连接?
  • 注释掉$this-&gt;load-&gt;database(),看看你是否得到预期的PHP错误。在整个代码中删除其中一些echo __LINE__, "&lt;br /&gt;\n"; exit(); 以尝试隔离问题。
  • 您能否提供您尝试访问的网址。您提供的任何额外信息只会使您受益。人们想提供帮助,但您必须帮助他们帮助您。

标签: php database codeigniter codeigniter-routing


【解决方案1】:

根据您的评论,您的路线似乎不正确。

这里是关于 CI 路线的一点概述

$route['journals'] = "blogs";

url -> localhost/index.php/journals

只要在第一个 uri 段中找到单词 journals,上述示例就会重定向到 blogs 类。 CI Reference

在您的情况下,您在第一段中寻找jobs,但错误地将其路由到不存在的类(假设这是因为您没有发布任何有关作业列表控制器的信息)。

所以你有两个选择;要么重命名你的控制器,要么修改你的路由。

选项 1:将控制器从 Jobs 重命名为 Joblist。并更新路线:

$route['jobs/(:any)'] = 'joblist/view/$1';

选项 2:

对于您的网址:localhost/bcjobs_final/index.php/jobs

$route['jobs/(:any)'] = 'jobs/view/$1';

【讨论】:

  • 感谢 ekims 确实有效,但出现了另一个错误“调用 C:\wamp\www\bcjobs_final\application\controllers\jobs 中非对象的成员函数 get_job()。 php on line 11" 我现在会尝试解决这个问题,谢谢上帝保佑
  • 在您的模型中将结构更改为 $this-&gt;load-&gt;library('database');
猜你喜欢
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多