本文較為詳細的講述了ThinkPHP連接數據庫及主從數據庫的設置方法,在ThinkPHP項目開發中非常實用。具體實現方法如下:
一、項目根目錄上建立config.php
代碼如下所示:
<?php if(!defined('THINK_PATH')) exit(); return array( 'DB_TYPE' => 'mysql',// 數據庫類型 'DB_HOST' => 'localhost',// 主機 'DB_NAME' => 'aoli',// 數據庫名稱 'DB_USER' => 'root',// 數據庫用戶名 'DB_PWD' => '',// 數據庫密碼 'DB_PREFIX' => '',// 數據表前綴 'DB_CHARSET' => 'utf8',// 網站編碼 'DB_PORT' => '3306',// 數據庫端口 ); ?>
二、設置項目配置文件
\Home\Conf\config.php文件代碼如下:
<?php $arr1=array{ 'URL_MODEL'=>2, //pathinfo訪問模式 }; $arr2=include './config.php'; return array_merge($arr1,$arr2); //數組整合 ?>
\Admin\Conf\config.php文件代碼如下:
<?php $arr1=array{ 'URL_MODEL'=>1, //普通訪問模式 get方式 }; $arr2=include './config.php'; return array_merge($arr1,$arr2); //數組整合 ?>
三、主從數據庫設置
該設置比較適合高並發,高負載的大型網站
讀者可以到\ThinkPHP\Common\convention.php中查看默認的系統常量設置
config.php文件設置如下:
<?php return array( //'配置項'=>'配置值' //後台 'URL_MODE'=>0, 'DB_TYPE'=>'mysql', 'DB_HOST'=>'localhost,192.168.1.2',//兩台數據庫服務器 'DB_PORT'=>'3306', 'DB_NAME'=>'thinkphptest',//如果數據庫名相同,不用定義多個,如果不相同與服務器依次對應 'DB_USER'=>'root', 'DB_PWD'=>'password', //表前綴 'DB_PREFIX'=>'think_', //接下來配置主從數據庫 'DB_DEPLOY_TYPE'=>1,//開啟分布式數據庫 'DB_RW_SEPARATE'=>ture,//讀寫分離,默認第一台服務器為寫入服務器,其它的只讀取不寫入 ); ?>
在某個action中讀取數據庫文件參數:
$hh=C('DB_HOST'); //C可以讀取配置文件中的值 $pp=C('DB_PREFIX'); $this->assain('h',$hh); $this->assain('p',$pp); $this->display();
這個action下的tpl:
數據庫服務器地址:{$h} 數據庫表前綴:{$p}
希望本文所述方法對大家的ThinkPHP程序設計能有所幫助。