當前位置:首頁 » 數據倉庫 » thinkphp資料庫編碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

thinkphp資料庫編碼

發布時間: 2023-05-24 08:52:50

A. ThinkPHP2.1 多資料庫 表前綴怎麼設置

ThinkPHP\Common文件夾中的convention.php中是tp的核心配置文件,不能亂動,如果要想更改裡面的配置,在Conf 文件夾裡面的config.php可以配置,可以這樣寫
<?php
return array(
'DB_TYPE' => 'mysql',// 資料庫類型
'DB_HOST' => '127.0.0.1',// 資料庫伺服器地址
'DB_NAME' => 'thinkphp',// 資料庫名稱
'DB_USER' => 'root',// 資料庫用戶名
'DB_PWD' => '123',// 資料庫密碼
'DB_PREFIX' => 'tp_',// 數據表前綴
'DB_CHARSET' => 'utf8',// 網站編碼
'DB_PORT' => '3306',// 資料庫埠
'APP_DEBUG' => false,// 開啟調試模式
);
?>
也可以在最外邊寫,就是與ThinkPHP框架同一目錄中寫一個config.php文件,格式如同上面的一樣,不過在Conf 文件夾裡面的config.php中得包含最外邊的那個config.php

B. thinkphp5.0 怎麼獨立寫配置文件

獨立配置文件

配置文件支持分離(也稱為擴展配置),只需要在公共配置文件配置extra_config_list參數(V5.0.1版本已經廢除該寫法)。

例如,不使用獨立配置文件的話,資料庫配置信息應該是在config.php中配置如下:

/* 資料庫設置 */
'database' => [
// 資料庫類型
'type' => 'mysql',
// 伺服器地址
'hostname' => '127.0.0.1',
// 資料庫名
'database' => 'thinkphp',
// 資料庫用戶名
'username' => 'root',
// 資料庫密碼
'password' => '',
// 資料庫連接埠
'hostport' => '',
// 資料庫連接參數
'params' => [],
// 資料庫編碼默認採用utf8
'charset' => 'utf8',
// 資料庫表前綴
'prefix' => '',
// 資料庫調試模式
'debug' => false,
],
如果需要使用獨立配置文件的話,則首先在config.php中添加配置:

'extra_config_list' => ['database'],
定義之後,資料庫配置就可以獨立使用database.php文件,配置內容如下:

/* 資料庫設置 */
return [
// 資料庫類型
'type' => 'mysql',
// 伺服器地址
'hostname' => '127.0.0.1',
// 資料庫名
'database' => 'thinkphp',
// 資料庫用戶名
'username' => 'root',
// 資料庫密碼
'password' => '',
// 資料庫連接埠
'hostport' => '',
// 資料庫連接參數
'params' => [],
// 資料庫編碼默認採用utf8
'charset' => 'utf8',
// 資料庫表前綴
'prefix' => '',
// 資料庫調試模式
'debug' => false,
],
如果配置了extra_config_list參數,並同時在config.php和database.php文件中都配置的話,則database.php文件的配置會覆蓋config.php中的設置。

獨立配置文件的參數獲取都是二維配置方式,例如,要獲取database獨立配置文件的type參數,應該是:

Config::get('database.type');
要獲取完整的獨立配置文件的參數,則使用:

Config::get('database');
系統默認設置了2個獨立配置文件,包括database和validate,分別用於設置資料庫配置和驗證規則定義。
自動讀取擴展配置

版本要求V5.0.1
5.0.1以上版本支持自動讀取擴展配置文件(extra_config_list配置參數廢棄),只需要將擴展配置文件放入application/extra目錄,即可自動讀取。

自動讀取的配置文件都是二級配置參數,一級配置名稱就是擴展配置的文件名。
模塊也可以支持自己的擴展配置文件,只需要放入 application/模塊名/extra下面就可以自動載入。

系統默認載入的獨立配置文件不在此列,包括:

文件名 描述
config 應用或者模塊配置文件
database 資料庫配置文件
tags 行為定義文件
場景名 應用場景配置文件
如果你更改了CONF_PATH,那麼擴展配置文件目錄應該是CONF_PATH/extra,模塊配置目錄則變成 CONF_PATH/mole/,模塊的擴展配置目錄則變成CONF_PATH/mole/extra。

C. thinkphp 中文亂碼怎麼辦

統一使用UTF-8就好了,THINKPHP默認就是UTF-8的余搭,你也得確認你資料庫也是UTF-8,這樣不容易出錯!另外你新建的模板文件不要弄成ANSI的!另存為的時洞碰候編碼選擇豎顫拿UTF8就好了

D. 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。

E. THINKPHP製作的一個網站,輸出內容中有亂碼,不知道如何修改設置讓他變為正常

你把資料庫,html模版,php類裡面編碼都設置成utf-8就可以了,統一了就好了

F. thinkphp5 連訪問資料庫時報錯utf-8編碼錯誤

thinkphp5連訪問資料庫時報錯utf-8編碼錯誤,出現中文亂碼的原因就是字元編碼不統一,出現中文亂碼需要添加如下代碼。

在D:phpStudyPHPTutorialMySQL下的my.ini中的mysqld下加如下語句:

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

示例代碼如下:

(6)thinkphp資料庫編碼擴展閱讀:

thinkphp5 連訪問資料庫時報錯utf-8編碼錯誤可能出錯的地方:

1. 代碼文件(判斷查看文件編碼的最簡單的辦法是:用記事本打開,然後點擊「另存為」,出現的窗口下方有「編碼」字樣,若不是你想要的編碼,改為你的編碼後保存覆蓋原來的文件即可)。

2. html 文件頭部應加上 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ,把 utf-8 改為你要同意的編碼即可。

3. 資料庫連接代碼應選擇對應字元編碼,mySql 的選擇字元編碼的代碼為:mysql_query("SET NAMES 'utf-8';"); 其他資料庫的代碼請自行查詢。

4. 後台程序代碼 php 需要註明字元編碼,header('Content-Type:text/html。

G. 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框架實現多資料庫連接,跨數據連接查詢操作示例

H. 請問下Thinkphp5.0.5報未定義數組下標: 1是什麼原因呀該怎麼解決呀

把具有相同類型的若干變數按有序的形式組織起來的一種形式,這些按序排列的同類數據元素的集合稱為數組。

數組成員引用的下標值就是這個成員元素在數組中的位置。因此必須大於或等於1。

$POST['id']之所以報未定義索引是因為$POST這個數組里沒有包含下標鍵值為id的值。

數組的下標都是從0開始的

要記錄下標直接寫成

for(int i = 0;i<a.length;i++){//i就是下標,a.length就是數組長度

}

(8)thinkphp資料庫編碼擴展閱讀:

ThinkPHP框架的文件全部採用UTF-8編碼格式,UTF-8的支持和自動輸出編碼轉換的功能讓頁面表現更加靈活。可以配置輸出的頁面編碼格式,如gb2312等(默認採用UTF-8輸出)。

系統根據配置文件中設置的編碼格式自動對頁面進行編碼轉換,支持iconv和mb_string兩種方式,為了提高效率,如果系統的模板編碼設置和輸出編碼設置項相同,則不會進行編碼轉換。ThinkPHP可以設置模板編碼、輸出編碼和資料庫編碼,並自動完成轉換工作,讓你的應用不再受編碼的苦惱。