ThinkPHP3.2.3数据库设置新特性_PHP教程
ThinkPHP3.2.3数据库设置新特性
前篇文章,我们总结了下ThinkPHP3.2中所产生的新变化,本文我们来详细看下关于数据库这块有哪些新特性,非常细致,有需要的小伙伴参考下。
ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用。
首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括:
代码如下:
/* 数据库设置 */
'DB_TYPE' => '', // 数据库类型
'DB_HOST' => '', // 服务器地址
'DB_NAME' => '', // 数据库名
'DB_USER' => '', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '', // 端口
'DB_PREFIX' => '', // 数据库表前缀
'DB_PARAMS' => array(), // 数据库连接参数
'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志
'DB_LITE' => false, // 使用数据库Lite模式
'DB_FIELDS_CACHE' => true, // 启用字段缓存
'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8
'DB_DEPLOY_TYPE' => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'DB_RW_SEPARATE' => false, // 数据库读写是否分离 主从式有效
'DB_MASTER_NUM' => 1, // 读写分离后 主服务器数量
'DB_SLAVE_NO' => '', // 指定从服务器序号
相对3.2.2版本来说,取消了如下设置参数:
代码如下:
'DB_FIELDTYPE_CHECK' // 3.2.3强制进行字段类型检测了
'DB_SQL_BUILD_CACHE' // 3.2.3取消了SQL创建缓存
'DB_SQL_BUILD_QUEUE' // 3.2.3取消了SQL创建缓存
'DB_SQL_BUILD_LENGTH' // 3.2.3取消了SQL创建缓存
'DB_SQL_LOG' // 由新增的DB_DEBUG参数取代
'DB_BIND_PARAM' // 新版采用PDO 自动参数绑定 无需设置
新增的数据库设置参数包括:
代码如下:
'DB_DEBUG' //用于开启数据库调试模式,开启后即可记录SQL日志
'DB_LITE' // 是否采用数据库Lite模式连接 开启后只能使用原生SQL查询
3.2.2版本数据库的调试模式和项目的调试模式(由APP_DEBUG常量定义)是绑定的 ,3.2.3版本开始数据库的调试模式是独立设置(由DB_DEBUG参数设置)的。
DB_TYPE参数为数据库类型设置,目前支持的驱动包括mysql/sqlite/oracle/pgsql/sqlsrv/firebird(其他的数据库类型需要增加驱动),设置如下:
'DB_TYPE'=>'mysql', // 不再支持设置为PDO 也不再区分mysql和mysqli
复制代码
数据库的连接信息,主要包括下面参数:
代码如下:
'DB_HOST' => '', // 服务器地址 采用IP地址
'DB_NAME' => '', // 数据库名
'DB_USER' => '', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '', // 端口 留空则取默认端口
'DB_CHARSET' => '', // 数据库编码
以上设置参数会在实例化PDO的时候自动转换为PDO的连接参数传入。
DB_DSN参数一般无需设置,系统的数据库驱动会进行默认设置,如果需要调整,请遵循PDO的相关数据库连接的DSN设置进行设置。
DB_PARAMS用于设置数据库的连接参数,会传入PDO实例化的第四个参数。
下面是一个典型的数据库全局设置:
代码如下:
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => '192.168.1.10', // 服务器地址
'DB_NAME' => 'thinkphp', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '1234', // 密码
'DB_PORT' => '3306', // 端口
'DB_PREFIX' => 'think_', // 数据库表前缀
'DB_CHARSET' => 'utf8', // 数据库编码
'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志
如果在模型类中设置单独的数据库连接信息connection属性,可以使用下面的数组或者字符串方式:
代码如下:
//在模型里单独设置数据库连接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
// 采用数组方式定义
protected $connection = array(
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => '1234',
'db_host' => '192.168.1.10',
'db_port' => '3306',
'db_name' => 'thinkphp',
'db_charset' => 'utf8',
);
}
注意:在模型中设置的数据库连接设置参数采用全局配置的小写名。
或者采用字符串方式定义,格式为:
数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
例如:
代码如下:
//在模型里单独设置数据库连接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
// 使用字符串方式定义
protected $connection = 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8';
}
也可以通过配置文件设置,例如:
代码如下:
//数据库配置1
'DB_CONFIG1' => array(
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => '1234',
'db_host' => '192.168.1.10',
'db_port' => '3306',
'db_name' => 'thinkphp',
'db_charset'=> 'utf8',
),
//数据库配置2
'DB_CONFIG2' => 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8';
然后在模型里面定义:
代码如下:
//在模型里单独设置数据库连接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
//调用配置文件中的数据库配置1
protected $connection = 'DB_CONFIG1';
// 或者
protected $connection = 'DB_CONFIG2';
}
除了在模型定义的时候指定数据库连接信息外,我们还可以在实例化的时候指定数据库连接信息,如果采用的是M方法实例化模型的话,也可以支持传入不同的数据库连接信息,例如:
代码如下:
$User = M('User','other_','mysql://root:1234@192.168.1.10/demo#utf8');
表示实例化User模型,连接的是demo数据库的other_user表,采用的连接信息是第三个参数配置的。
如果我们在项目配置文件中已经配置了DB_CONFIG2的话,也可以采用:
$User = M('User','other_','DB_CONFIG2');
以上就是本文的全部内容了,希望大家能够喜欢。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

即使在「請勿打擾」模式下接聽電話也可能是一種非常煩人的體驗。顧名思義,請勿打擾模式可關閉來自郵件、訊息等的所有來電通知和警報。您可以按照這些解決方案集進行修復。修復1–啟用對焦模式在手機上啟用對焦模式。步驟1–從頂部向下滑動以存取控制中心。步驟2–接下來,在手機上啟用「對焦模式」。專注模式可在手機上啟用「請勿打擾」模式。它不會讓您的手機上出現任何來電提醒。修復2–更改對焦模式設定如果對焦模式設定中存在一些問題,則應進行修復。步驟1–打開您的iPhone設定視窗。步驟2–接下來,開啟「對焦」模式設

大麥網購票時,為了確保能夠準確掌握購票時間,用戶可以設定一個懸浮時鐘來進行搶票,詳細的設定方法就在下文中,讓我們一起學習下吧。大麥綁定懸浮時鐘方法1.在手機中點擊開啟懸浮時鐘app進入介面後,在設定秒殺提查的位置點擊,如下圖所示位置:2.來到新增記錄的頁面後,把在大麥網中複製的買票連結頁面複製進去。 3.接下來在下方設定秒殺時間和通知時間,打開【儲存到日曆】後面的開關按鈕,並在下方點選【儲存】。 4.點選開啟【倒數計時】,如下圖所示:5.到提醒時間時在下方點選【開始畫中畫】的按鈕。 6.購票時間到時

抖音作為當今最受歡迎的短影片平台之一,用戶在享受短影片帶來的樂趣時,也希望能夠更好地控制自己的時間。最近,有使用者反映抖音播放過程中會自動關閉,這讓他們感到非常困擾。一、抖音播放自動關閉怎麼設定? 1.檢查抖音版本請確保您使用的抖音版本是最新的。抖音會定期更新,修復已知問題。如果您的抖音版本過舊,可能會出現自動關閉的問題。您可以在應用程式商店檢查並更新抖音。 2.檢查手機系統版本抖音播放自動關機也可能與手機系統版本有關。請確保您的手機系統版本是最新的。如果手機系統版本過舊,可能會導致抖音運作不穩定。您可以

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

HTML無法直接讀取資料庫,但可以透過JavaScript和AJAX實作。其步驟包括建立資料庫連線、發送查詢、處理回應和更新頁面。本文提供了利用JavaScript、AJAX和PHP來從MySQL資料庫讀取資料的實戰範例,展示如何在HTML頁面中動態顯示查詢結果。此範例使用XMLHttpRequest建立資料庫連接,發送查詢並處理回應,從而將資料填入頁面元素中,實現了HTML讀取資料庫的功能。

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

1、開啟微博群聊,選擇設定(如圖)。 2、選擇【聊天氣泡】(如圖)。 3、到達對應的等級後,即可領取氣泡並進行設定即可(如圖)。
