程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> thinkphp學習簡易教程(二) thinkphp連接讀取MySQL數據庫,thinkphpmysql

thinkphp學習簡易教程(二) thinkphp連接讀取MySQL數據庫,thinkphpmysql

編輯:關於PHP編程

thinkphp學習簡易教程(二) thinkphp連接讀取MySQL數據庫,thinkphpmysql


首先, 在本地服務器中新建項目APP,依據第一講中的步驟配置好thinkphp,這裡為了測試方便,不分前台和後台模塊,統一把模塊路徑設為'./APP/'。 1、新建數據庫myapp,以及數據庫表think_form; 2、在配置文件APP/Conf/config.php中寫入: <?php return array( //'配置項'=>'配置值' 'DB_TYPE'   => 'mysql', // 數據庫類型 'DB_HOST'   => '127.0.0.1', // 服務器地址 'DB_NAME'   => 'myapp', // 數據庫名 'DB_USER'   => 'root', // 用戶名 'DB_PWD'    => '', // 密碼 'DB_PORT'   => '3306', // 端口 'DB_PREFIX' => 'think_', // 數據庫表前綴 ); ?> 其中端口為字符串需要加引號,之前把3306看成int數據類型,結果一直搞不定; 3、在控制器APP/Lib/IndexAction.class.php中寫入: <?php // 本類由系統自動生成,僅供測試用途 class IndexAction extends Action {     public function index(){ $m=new Model('Form'); $arr=$m->select(); var_dump($arr[0]['title']);     } } ?> 注:上面的語句具體解釋為:$m=new Model(數據庫表後綴名);後綴名首字母大小不限。注意只能是數據庫表後綴名,不能是完整的數據庫表名,否則讀取數據失敗,顯示數據為null。也可以采用$m=M(數據庫表後綴名);或者$m=D(數據庫表後綴名); 最後,在浏覽器中運行http://127.0.0.1/APP/index.php/Index/index,如果成功,即可看到數據字段的數據。 再注:之前連接時在入口文件內沒有加入define('APP_DEBUG', true);結果數據庫始終讀取失敗,而加了之後忽然成功了,再次注釋掉也可以讀取。難道說這一道程序是必須的?搞不懂情況?反正thinkphp操作超蛋疼。 4、上面的操作基本可以讀取數據庫了,但對於MVC要把控制器C和視圖V聯系,還需要再加一道工序: (1)在控制器APP/Lib/IndexAction.class.php中加入: $this->assign('data',$arr[0]['title']); $this->display();//此方法為在視圖V中輸出顯示數據的必要條件。 (2)在APP/Tpl目錄中新建Index目錄(由於控制器中的類名為IndexAction ,此處必須為Index,如果要改成其他目錄名,首先要把IndexAction 的Index改成其他字符串),再在Index目錄下新建index.html,寫入HTML語句,加入{$data}變量(因為在控制器中通過assign方法為$data進行了定義和賦值,想分配變量可以使用assign方法)。 在浏覽器中運行http://127.0.0.1/APP/index.php/Index/index,如果成功,即可看到數據字段的數據。 總之,thinkphp連接數據庫超蛋疼!!記得加入define('APP_DEBUG', true);防止麻煩出現。  

 

附1: url的4種訪問方式          //重點! 1.PATHINFO 模式 -- 重點!!!!!! http://域名/項目名/入口文件/模塊名/方法名/鍵1/值1/鍵2/值2 2.普通模式 http://域名/項目名/入口文件?m=模塊名&a=方法名&鍵1=值1&鍵2=值2 3.REWRITE模式 http://域名/項目名/模塊名/方法名/鍵1/值1/鍵2/值2 4.兼容模式 http://域名/項目名/入口文件?s=模塊名/方法名/鍵1/值1/鍵2/值2

http://127.0.0.1/APP/index.php/Index/index為第一種。 
  附2: 控制器數據庫操作CURD命令: 增 -C Create $m->add() 刪 -D Delete $m->delete() 改 -U Update $m->save() 查 -R Read   $m->select()   附3: 模型遍歷數組方法: 控制器的語句:public function index(){ $m=new Model('Form'); //$m=new Model(數據庫表後綴名);實例化模型 $arr=$m->select(); //var_dump($arr[0]['title']); //$name='ken'; //$this->assign('data',$name); $this->assign('data',$arr); $this->display();     } 視圖V的語句: <h1>    <volist name='data' id='vo'> {$vo.id}<br> {$vo.title}<br>    </volist>    </h1> <volist>標簽是模型遍歷數組的關鍵,屬性name為控制器中接收過來的後台變量,id為前台輸出的實例對象變量。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved