2

Codeigniter を使用して Web アプリケーションを構築していますが、次のエラーを受け取りました。

Fatal error: Call to a member function result_array() on a 
non-object in /var/www/application/controllers/people.php on line 29

これは people.php クラスです:

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

function People() {

}

function view($id) {
    echo "Hello world " . $id;
}

function all() {
    $this->load->model('people_model', '', TRUE);
    $allContacts = $this->people_model->get_all_contacts();
    $results = array();
    foreach ($allContacts->result_array() as $row) {
        $eachrow = array("personID"=>$row['personID'],"fName"=>$row['fName'],"lName"=>$row['lName'],"phoneNumber"=>"",
            "emailAddress"=>$row['emailAddress'],"address"=>$row['address'],"city"=>$row['city'],"state"=>$row['state'],"zip"=>$row['zip']);
        $results = push_array($results, $eachrow);
    }
    foreach ($results as $row) {
        $phoneData = $this->people_model->get_phone_by_id($row['personID']);
        $phoneNumbers = "";
        foreach ($phoneData->result_array() as $row2) {
            $phoneNumbers = $row2['type'] . " " . $row2['phoneNumber'] . " " . $row2['extension'];
        }
        $results['phoneNumber'] = $phoneNumbers;
    }

    $data['title']="Page Title Goes Here";
    $data['username']="Your Username";

    $this->load->view('header', $data);
    $this->load->view('people_results', $results);
    $this->load->view('footer');
}
}

people_model クラスは次のとおりです。

function __construct()
{
    // Call the Model constructor
    parent::__construct();
}

function get_all_contacts() {
    $query = $this->db->query('SELECT * FROM person');
    return $query->result();
}

function get_phone_by_id($id) {
    $query = $this->db->query('SELECT * FROM phoneNumber WHERE personID = '.$id);
    return $query->result();
}
}

database.php で疑問に思うかもしれない唯一のことは、ホスト名にポート番号が必要かどうかということですが、試してみたところ、それが役に立たなかったと思います。

追加してみました(サイドバーの同様の質問に基づいて)

$this->mydb = $this->load->database('realDB', TRUE);

people_model に変更し、db を mydb に変更すると、次のエラーが発生しました。

You have specified an invalid database connection group.

これは、database.php の私の行です。

$db['default']['database'] = 'realDB';

ご助力いただきありがとうございます。

4

1 に答える 1