『壹』 thinkphp如何連接多個資料庫
1、onfig.php文件
'LOAD_EXT_CONFIG'
=>'db,db_config',
//
載入擴展
配置文件
。多個文件用逗號分隔
//其中db.php中放置的是mysql的配置
//db_config放置的是
sqlserver
的配置
2、其中db.php內容如下
return
array(
'DB_TYPE'=>'mysql',
'DB_HOST'=>'
localhost
',
'DB_NAME'=>'your_mysql_dbname',
'DB_USER'=>'your_mysql_user_name',
'DB_PWD'=>'123456',
'DB_PORT'=>'3306',
'DB_PREFIX'=>'',
);
db_config.php內容如下
return
array(
'DB_CONFIG1'
=>
array(
'db_type'
=>
'pdo',
'db_user'
=>
'XX',
'db_pwd'
=>
'XXXXXXXX',
'DB_DSN'
=>
'sqlsrv:Server=XXXXXX;Database=XXXX',
),
);
3、在Lib/Model下新建一個專門的模型
class
SqlsrvModel
extends
Model
{
protected
$
connection
=
'DB_CONFIG1';
}
4、可以在Action
中調
各個模型了
『貳』 PHP利用pdo_odbc實現連接資料庫示例【基於ThinkPHP5.1搭建的項目】
本文實例講述了PHP利用pdo_odbc實現連接資料庫。分享給大家供大家參考,具體如下:
目的:從sql
server資料庫裡面把某個視圖文件調用出來,以鍵值對的方式顯示在頁面上。
利用pdo
odbc來實現PHP連接資料庫:
在PHP配置文件裡面開啟pdo_odbc.dll服務。重啟Apache伺服器。
在ThinkPHP5.1的項目中在模塊里添加config添加規定好的樣式資料庫:
代碼如下:
<?php
return
[
//
資料庫類型
'type'
=>
'sqlsrv',
//
伺服器地址
'hostname'
=>
'localhost',
//
資料庫名
'database'
=>
'mysql',
//
用戶名
'username'
=>
'sa',
//
密碼
'password'
=>
'123456',
//
埠
'hostport'
=>
'',
//
連接dsn
'dsn'
=>
'odbc:Driver={SQL
Server};Server=localhost;Database=mysql',
//
資料庫連接參數
'params'
=>
[],
//
資料庫編碼默認採用utf8
'charset'
=>
'utf8',
//
資料庫表前綴
'prefix'
=>
'',
//
資料庫調試模式
'debug'
=>
true,
//
資料庫部署方式:0
集中式(單一伺服器),1
分布式(主從伺服器)
'deploy'
=>
0,
//
資料庫讀寫是否分離
主從式有效
'rw_separate'
=>
false,
//
讀寫分離後
主伺服器數量
'master_num'
=>
1,
//
指定從伺服器序號
'slave_no'
=>
'',
//
是否嚴格檢查欄位是否存在
'fields_strict'
=>
true,
//
數據集返回類型
'resultset_type'
=>
'array',
//
自動寫入時間戳欄位
'auto_timestamp'
=>
false,
//
時間欄位取出後的默認時間格式
'datetime_format'
=>
'Y-m-d
H:i:s',
//
是否需要進行SQL性能分析
'sql_explain'
=>
false,
//
Builder類
'builder'
=>
'',
//
Query類
'query'
=>
'\\think\\db\\Query',
//
是否需要斷線重連
'break_reconnect'
=>
false,
//
斷線標識字元串
'break_match_str'
=>
[],
];
?>
在控制器controller裡面建一個控制文件Test.php
代碼如下:
<?php
namespace
app\index\controller;
use
think\Db;
use
think\Controller;
class
Test
extends
Controller
{
public
function
zz(){
$data=Db::view('View_2')->select();
echo
json_encode($data);
}
}
?>
最後調用入口文件即可訪問。
http://localhost:81/1111/tp5/public/index/test/zz
我的效果:
[{"111":"123","1112":"LLP","232":"1","ROW_NUMBER":"1"},{"111":"123","1112":"BB","232":"2","ROW_NUMBER":"2"}]
更多關於thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend
FrameWork框架入門教程》及《PHP模板技術總結》。
希望本文所述對大家基於ThinkPHP框架的PHP程序設計有所幫助。
您可能感興趣的文章:ThinkPHP實現多資料庫連接的解決方法tp5(thinkPHP5)框架實現多資料庫查詢的方法ThinkPHP3.1新特性之多資料庫操作更加完善tp5(thinkPHP5)框架連接資料庫的方法示例PHP7使用ODBC連接SQL
Server2008
R2資料庫示例【基於thinkPHP5.1框架】thinkPHP5實現的查詢資料庫並返回json數據實例tp5(thinkPHP5)操作mongoDB資料庫的方法tp5(thinkPHP5)框架資料庫Db增刪改查常見操作總結thinkPHP5框架實現多資料庫連接,跨數據連接查詢操作示例
『叄』 thinkphp5.1連接資料庫
在應用配置目錄或者模塊配置目錄(不清楚配置目錄位置的話參考配置章節)下面的database.php中(後面統稱為資料庫配置文件)配置下面的資料庫參數:
return [
// 資料庫類型
'type' => 'mysql',
// 伺服器地址
'hostname' => '127.0.0.1',
// 資料庫名
'database' => 'thinkphp',
// 資料庫用戶名
'username' => 'root',
// 資料庫密碼
'password' => '',
// 資料庫連接埠
'hostport' => '',
// 資料庫連接參數
'params' => [],
// 資料庫編碼默認採用utf8
'charset' => 'utf8',
// 資料庫表前綴
'prefix' => 'think_',
];
系統默認支持的資料庫type包括:
type 資料庫
mysql MySQL
sqlite SqLite
pgsql PgSQL
sqlsrv SqlServer
type參數支持命名空間完整定義,不帶命名空間定義的話,默認採用\think\db\connector作為命名空間,如果使用應用自己擴展的資料庫驅動,可以配置為:
// 資料庫類型
'type' => '\org\db\Mysql',
表示資料庫的連接器採用 \org\db\Mysql類作為資料庫連接驅動,而不是默認的\think\db\connector\Mysql。
『肆』 thinkphp3.1.3怎樣連接mysql資料庫
thinkphp3.x連接mysql資料庫的方法。分享給大家供大家參考,具體如下:
慣例配置文件:ThinkPHP/conf/convention.php
(1)在配置文件中填寫配置信息(配置文件:「./xmall/conf/config.php」):
示例:
<?php return array( //'配置項'=>'配置值' /* 資料庫設置 */ 'DB_TYPE' => 'mysql', // 資料庫類型 'DB_HOST' => 'localhost', // 伺服器地址 'DB_NAME' => 'xmall', // 資料庫名 'DB_USER' => 'root', // 用戶名 'DB_PWD' => '123', // 密碼 'DB_PORT' => '3306', // 埠 'DB_PREFIX' => 'think_', // 資料庫表前綴 'DB_FIELDTYPE_CHECK' => false, // 是否進行欄位類型檢查 'DB_FIELDS_CACHE' => true, // 啟用欄位緩存 'DB_CHARSET' => 'utf8', // 資料庫編碼默認採用utf8 ); ?>
(2)創建表:
?12345 CREATE TABLE `think_user` ( `id` int(11) DEFAULT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(20) DEFAULT NULL) ENGINE=InnoDB;
(3) 執行數據插入操作在lib/Action下修改IndexAction.class.php文件,內容如下:
<?php class IndexAction extends Action{ function index(){ public function index(){ $data=array( "id"=>"1", "name="=>"liuning", "pwd"=>"asd123" ); M("user")->add($data); } } } ?>
(4)執行http://localhost/xmall/index.php,資料庫中就會有新的記錄生成;
『伍』 thinkphp 怎麼連接sqlserver資料庫
到微軟官網下載文件,網址:網路搜索
選擇「SQLSRV20.EXE」,點擊"next"(下一步),進行下載
右鍵解壓到當前目錄,把這兩個文件拷貝到PHP目錄下的ext目錄下
下圖是拷貝後的結果,請參考,不要拷錯了。
打開php-ini 在文件中設置,加上下面兩行代碼,如下圖
下面這里設置為On,保存,重啟服務,如下圖
修改thinkphp配置文件,如下圖
thinkphp控制器文件,隨便查個sqlserver表中的數據,看是否能成功列印,如果成功列印,那麼證明資料庫連接成功。如果不能正確列印,那麼看報錯提示,在按照提示解決問題。
『陸』 thinkphp怎麼連接pgsql
連接資料庫 ThinkPHP內置了抽象資料庫訪問層,把不同的資料庫操作封裝起來,我們只需要使用公共的Db類進行操作,而無需針對不同的資料庫寫不同的代碼和底層實現,Db類會自動調用相應的資料庫適配器來處理。目前的資料庫包括Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase以及PDO的支持,如果應用需要使用資料庫,必須配置資料庫連接信息,資料庫的配置文件有多種定義方式:
第一種 在項目配置文件裡面定義
return array(
'DB_TYPE'=> 'mysql',
'DB_HOST'=> 'localhost',
'DB_NAME'=>'thinkphp',
'DB_USER'=>'root',
'DB_PWD'=>'',
'DB_PORT'=>'3306',
'DB_PREFIX'=>'think_',
// 其他項目配置參數………
);
系統推薦使用該種方式,因為一般一個項目的資料庫訪問配置是相同的。該方法系統在連接資料庫的時候會自動獲取,無需手動連接。
可以對每個項目定義不同的資料庫連接信息,還可以在調試配置文件(Conf/debug.php)裡面定義調試資料庫的配置信息,如果在項目配置文件和調試模式配置文件裡面同時定義了資料庫連接信息,那麼在調試模式下面後者生效,部署模式下面前者生效。
第二種 使用DSN方式在初始化Db類的時候傳參數
$db_dsn = 「mysql://username:passwd@localhost:3306/DbName」;
$db = new Db($db_dsn);
該方式主要用於在控制器裡面自己手動連接資料庫的情況,或者用於創建多個資料庫連接。
第三種 使用數組傳參數
$DSN = array(
'dbms' => 'mysql',
'username' => 'username',
'password' => 'password',
'hostname' => ; 'localhost',
'hostport' => '3306',
'database' => 'dbname'
);
$db = new Db($DSN);
該方式也是用於手動連接資料庫的情況,或者用於創建多個資料庫連接。
第四種 在模型類裡面定義
protected $connection = array(
'dbms' => 'mysql',
'username' => 'username',
'password' => 'password',
'hostname' => 'localhost',
'hostport' => '3306',
'database' => 'dbname'
);
// 或者使用下面的定義
protected $connection = 」mysql://username:passwd@localhost:3306/DbName」;
如果在某個模型類裡面定義了connection屬性,則在實例化模型對象的時候,會使用該資料庫連接信息進行資料庫連接。通常用於某些數據表位於當前資料庫連接之外的其它資料庫。
ThinkPHP並不是在一開始就會連接資料庫,而是在有數據查詢操作的時候才會去連接資料庫。額外的情況是,在系統第一次操作模型的時候,框架會自動連接資料庫獲取相關模型類的數據欄位信息,並緩存下來。
(欄位緩存目錄:Runtime/Data/_fields)
ThinkPHP支持PDO方式,如果要使用PDO方式連接資料庫,可以參考下面的設置。
我們以項目配置文件定義為例來說明:
return array(
'DB_TYPE'=> 'pdo',
// 注意DSN的配置針對不同的資料庫有所區別 請參考PHP手冊PDO類庫部分
'DB_DSN'=> 'mysql:host=localhost;dbname=think',
'DB_USER'=>'root',
'DB_PWD'=>'',
'DB_PREFIX'=>'think_',
// 其他項目配置參數………
);
使用PDO方式的時候,要注意檢查是否開啟相關的PDO模塊。DB_DSN參數僅對PDO方式連接才有效。
『柒』 多個Thinkphp項目如何共用一個資料庫連接
如果你的多個項目就是只要這1個資料庫,那在多個項目的config.php文件寫資料庫配置,如果你只想某個查詢的時候連接額外的資料庫,model->db("number",$config)->query();數字編號是你第一次連接的時候任意寫1個,下次再用這個連接就不用寫$config,$config就是你要查詢的資料庫配置,具體看手冊-模型-連接資料庫(切換資料庫)
『捌』 thinkphp怎麼連接資料庫
thinkphp連接資料庫的方法:
ThinkPHP內置了抽象資料庫訪問層,把不同的資料庫操作封裝起來,只需要使用公共的Db類進行操作,而無需針對不同的資料庫寫不同的代碼和底層實現,Db類會自動調用相應的資料庫驅動來處理。目前的資料庫包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括對PDO的支持,如果應用需要使用資料庫,必須配置資料庫連接信息,資料庫的配置文件有多種定義方式。
常用的配置方式是在項目配置文件中添加下面的參數:
<?php
//項目配置文件
return array(
//資料庫配置信息
'DB_TYPE' => 'mysql', // 資料庫類型
'DB_HOST' => 'localhost', // 伺服器地址
'DB_NAME' => 'thinkphp', // 資料庫名
'DB_USER' => 'root', // 用戶名
'DB_PWD' => '', // 密碼
'DB_PORT' => 3306, // 埠
'DB_PREFIX' => 'think_', // 資料庫表前綴
//其他項目配置參數
// ...
);
需要注意的是,ThinkPHP的資料庫連接的惰性的,所以並不是在實例化的時候就連接資料庫,而是在有實際的數據操作的時候才會去連接資料庫(額外的情況是,在系統第一次實例化模型的時候,會自動連接資料庫獲取相關模型類對應的數據表的欄位信息)。