2013-02-02 58 views
2

我決定結束與Doctrine 2.3的合作,現在我只想使用CodeIgniter建立數據庫連接,你知道我的代碼在哪裏嗎?CodeIgniter與數據庫的連接

此錯誤,我得到:

A PHP Error was encountered 

Severity: Notice 

Message: Undefined property: Hello::$db 

Filename: core/Model.php 

Line Number: 51 

database.php中

$db['default']['hostname'] = 'localhost:8080'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = ''; 
$db['default']['database'] = 'ci_doctrine'; 
$db['default']['dbdriver'] = 'mysql'; 

控制器

<?php 
    // system/application/controllers/hello.php 

    class Hello extends CI_Controller { 

     public function __construct() 
     { 
      parent::__construct(); 
     } 
     function world() { 
      echo "Hello CodeIgniter!"; 
     } 

     function user_test() { 

      $this->load->model('user'); 

      $this->user->save_User('username','password','first_name','last_name'); 

     } 
} 

?> 

模式 - 在數據庫中「用戶」

<?php 
    // system/application/models/user.php 

    class User extends CI_Model { 

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

      function save_User($username,$password,$fName,$lName) { 

       $this->username = $username; 
       $this->password = $password; 
       $this->first_name = $fName; 
       $this->last_name = $lName; 
       $this->db->insert('user', $this); 
       } 

    } 
?> 
+0

你在本地?如果是,然後嘗試刪除8080後 –

+0

@raheel山,但如果我將刪除此端口,我無法連接到網站。我的端口80有Skype和WAMP有8080. –

回答

3

您需要加載數據庫庫:

的config/autoload.php

$autoload['libraries'] = array('database'); 
+0

你的意思是 - > $ autoload ['config'] = database.php; ?? –

+0

是你加載數據庫類嗎?你沒有提到它的問題。 –

+0

不,我的意思是$ autoload ['libraries'] = array('database');文件夾應用程序/配置文件autoload.php :) – mallix

2

問題表名是你不加載數據庫類

$this->load->database(); 

Here是CodeIgniter用戶指南

沒有你的連接不能使用數據庫類,因此它說未定義的屬性數據庫。

+0

與這個本地主機是好點 –

+0

嘗試通過轉到Skype->工具 - >設置 - > advance->連接並免除使用端口80和443,然後重新啓動wamp和skype –

+0

謝謝:)這個很好的信息。 Skype ... –

-1

爲手動連接
使用這個在你的控制器文件

$this->load->database(); 

對於自動化連接數據庫

轉到控制器然後在autoload.php做如下修改

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

您需要加載數據庫庫:

的config/autoload.php

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

試試吧。