新聞中心
現(xiàn)代軟件開(kāi)發(fā)的復(fù)雜性和規(guī)模越來(lái)越高,如何提高開(kāi)發(fā)效率和縮短開(kāi)發(fā)周期成為了每個(gè)開(kāi)發(fā)人員和團(tuán)隊(duì)的共同問(wèn)題。在這個(gè)過(guò)程中,數(shù)據(jù)庫(kù)操作往往是一個(gè)很耗費(fèi)時(shí)間和精力的環(huán)節(jié),尤其是對(duì)于大型應(yīng)用和數(shù)據(jù)量龐大的數(shù)據(jù)庫(kù)。本篇文章將介紹如何通過(guò)簡(jiǎn)化CodeIgniter(CI)框架的數(shù)據(jù)庫(kù)操作,提高開(kāi)發(fā)效率和代碼質(zhì)量。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比桑植網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式桑植網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋桑植地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
1. ci數(shù)據(jù)庫(kù)操作簡(jiǎn)介
CodeIgniter是一個(gè)輕量級(jí)的PHP框架,自帶了強(qiáng)大的數(shù)據(jù)庫(kù)類庫(kù),可以方便地進(jìn)行數(shù)據(jù)讀取、寫入、更新和刪除等操作。CI使用了Active Record的設(shè)計(jì)模式,將數(shù)據(jù)操作映射到類的方法中,使得代碼更加直觀和易于維護(hù)。但是,CI的數(shù)據(jù)庫(kù)操作也存在一些問(wèn)題,例如:
– Active Record的方法名和參數(shù)存在一定的限制和局限性,可能無(wú)法滿足特定的SQL需求;
– 數(shù)據(jù)表和字段的寫法必須遵循一定的規(guī)范和格式,可能會(huì)造成代碼的冗余和復(fù)雜性;
– 操作數(shù)據(jù)表的方法存在嵌套和連貫的問(wèn)題,可能會(huì)增加代碼的深度和復(fù)雜度;
– 對(duì)于復(fù)雜的數(shù)據(jù)庫(kù)操作,需要手動(dòng)拼接SQL語(yǔ)句,容易出現(xiàn)錯(cuò)誤和安全問(wèn)題。
這些問(wèn)題都會(huì)影響開(kāi)發(fā)效率和代碼質(zhì)量,為此,我們需要進(jìn)行一些改進(jìn)和優(yōu)化。
2. 簡(jiǎn)化CI數(shù)據(jù)庫(kù)操作的方法
為了簡(jiǎn)化CI數(shù)據(jù)庫(kù)操作,我們可以采用一些有用的方法和技巧,例如:
2.1 引入Query Builder
CodeIgniter 3.0以上版本中,引入了Query Builder類,它是一種更加靈活和易用的數(shù)據(jù)庫(kù)操作方式,可以方便地構(gòu)造SQL語(yǔ)句并執(zhí)行查詢。使用Query Builder的好處有:
– 不限制方法和參數(shù),可以使用任意的SQL語(yǔ)句和查詢條件;
– 可以使用各種流暢接口(Fluent Interfaces)和函數(shù)式編程(Functional Programming)的方法,使得代碼更加簡(jiǎn)潔和易讀;
– 支持事務(wù)和錯(cuò)誤處理,可以有效地保證數(shù)據(jù)操作的安全和正確性。
因此,我們建議在CI項(xiàng)目中盡可能使用Query Builder而不是Active Record來(lái)進(jìn)行數(shù)據(jù)庫(kù)操作。以下是一些使用Query Builder的例子:
// 初始化Query Builder對(duì)象
$this->db->select(‘name, eml’);
$this->db->from(‘users’);
$this->db->where([‘id’=>$id, ‘status’=>1]);
$this->db->limit(10);
$result = $this->db->get()->result_array();
// 使用Query Builder插入數(shù)據(jù)
$data = [
‘name’ => ‘Peter’,
’eml’ => ‘[email protected]’,
‘created_at’ => date(‘Y-m-d H:i:s’)
];
$this->db->insert(‘users’, $data);
// 使用Query Builder更新數(shù)據(jù)
$data = [
‘name’ => ‘John’,
’eml’ => ‘[email protected]’,
‘updated_at’ => date(‘Y-m-d H:i:s’)
];
$this->db->where(‘id’, $id);
$this->db->update(‘users’, $data);
2.2 使用ORM框架
ORM(Object-Relational Mapping)框架是一種將對(duì)象和關(guān)系型數(shù)據(jù)表進(jìn)行映射的方法,可以將數(shù)據(jù)庫(kù)操作轉(zhuǎn)換為面向?qū)ο蟮牟僮鳎沟么a更加清晰和易于維護(hù)。在CI項(xiàng)目中,我們可以使用一些流行的ORM框架來(lái)簡(jiǎn)化數(shù)據(jù)庫(kù)操作,例如:
– Doctrine:一個(gè)全面性的ORM框架,支持多種數(shù)據(jù)庫(kù)和高級(jí)查詢語(yǔ)言;
– Eloquent:Laravel框架自帶的ORM框架,擁有流暢的查詢接口和方便的數(shù)據(jù)操作方法;
– CodeIgniter-Doctrine:CI框架的Doctrine封裝,提供了類似Active Record的數(shù)據(jù)操作方式。
使用ORM框架的好處有:
– 代碼風(fēng)格更加清晰和易于維護(hù),可以避免手寫SQL語(yǔ)句和復(fù)雜的數(shù)據(jù)操作方法;
– 可以提高代碼的復(fù)用性和靈活性,支持多種查詢方式和擴(kuò)展方法;
– 支持對(duì)象的自動(dòng)映射和關(guān)聯(lián),可以方便地處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和關(guān)系。
以下是使用Eloquent框架的例子:
// 定義模型類
class User extends \Illuminate\Database\Eloquent\Model {
protected $table = ‘users’;
protected $fillable = [‘name’, ’eml’, ‘password’];
public function profile() {
return $this->hasOne(Profile::class);
}
}
class Profile extends \Illuminate\Database\Eloquent\Model {
protected $table = ‘user_profiles’;
protected $fillable = [‘a(chǎn)ge’, ‘gender’, ‘phone’];
public function user() {
return $this->belongsTo(User::class);
}
}
// 查詢用戶信息及其關(guān)聯(lián)數(shù)據(jù)
$user = User::with(‘profile’)->find(1);
echo $user->name . ‘ age is ‘ . $user->profile->age;
// 新建用戶并關(guān)聯(lián)數(shù)據(jù)
$user = User::create([
‘name’ => ‘John’,
’eml’ => ‘[email protected]’,
‘password’ => ‘123456’
]);
$user->profile()->create([
‘a(chǎn)ge’ => 25,
‘gender’ => ‘male’,
‘phone’ => ‘1234567890’
]);
2.3 封裝常用操作
在開(kāi)發(fā)過(guò)程中,我們通常需要進(jìn)行一些常見(jiàn)的數(shù)據(jù)庫(kù)操作,如查詢分頁(yè)、批量更新、批量插入等。為了提高開(kāi)發(fā)效率和代碼質(zhì)量,我們可以將這些操作封裝成類庫(kù)或擴(kuò)展,以便更方便地復(fù)用和調(diào)用。以下是一些常用的CI數(shù)據(jù)庫(kù)操作封裝方法:
– Pagination:封裝了CI的分頁(yè)查詢功能,支持自定義分頁(yè)大小和樣式;
– Bulk Update:封裝了CI的批量更新功能,支持快速更新大量數(shù)據(jù);
– Batch Insert:封裝了CI的批量插入功能,支持快速插入大量數(shù)據(jù);
– Query Debug:封裝了CI的調(diào)試功能,支持打印執(zhí)行的SQL語(yǔ)句和耗時(shí)信息。
這些封裝方法可以在不增加太多代碼和復(fù)雜度的情況下,提高代碼的復(fù)用性和開(kāi)發(fā)效率。例如,使用Pagination類庫(kù)可以在簡(jiǎn)單的幾行代碼中實(shí)現(xiàn)分頁(yè)功能:
// 引入Pagination類庫(kù)
$this->load->library(‘pagination’);
// 設(shè)置分頁(yè)參數(shù)
$config[‘base_url’] = base_url(‘/users’);
$config[‘total_rows’] = $this->db->count_all(‘users’);
$config[‘per_page’] = 10;
// 初始化分頁(yè)類
$this->pagination->initialize($config);
// 查詢數(shù)據(jù)并顯示分頁(yè)
$data[‘users’] = $this->db->get(‘users’, $config[‘per_page’], $this->uri->segment(3));
$this->load->view(‘users’, $data);
echo $this->pagination->create_links();
3.
通過(guò)上述方法和技巧,我們可以有效地和代碼質(zhì)量。需要注意的是,CI數(shù)據(jù)庫(kù)操作雖然簡(jiǎn)單易用,但仍然需要謹(jǐn)慎處理,避免出現(xiàn)數(shù)據(jù)安全和性能問(wèn)題。因此,在開(kāi)發(fā)過(guò)程中,需要對(duì)數(shù)據(jù)表和字段進(jìn)行規(guī)范和合理設(shè)計(jì),對(duì)數(shù)據(jù)操作和查詢進(jìn)行優(yōu)化和測(cè)試,以確保代碼的正確和可靠。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220CI的session生成后放在哪
CI的session生成后,默認(rèn)放在數(shù)據(jù)庫(kù),cookie放在客戶端
CI的session 信息默認(rèn)是放在cookie里吧,只有在config.php啟用數(shù)據(jù)庫(kù)才把session_data 和user_data 放在數(shù)據(jù)庫(kù)。
Session 類可以使用戶在瀏覽您的網(wǎng)站時(shí),維持他們的狀態(tài)并跟蹤他們的行為。 Session 類將每個(gè)用戶的 session 信息序列化(serialize)后存儲(chǔ)到到 cookie 中(并同時(shí)進(jìn)行加密)。 您還可以將 session 數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中來(lái)增強(qiáng)安全性,但是這時(shí)要求存儲(chǔ)在用戶 cookie 中的 session ID 值能與數(shù)據(jù)庫(kù)中存儲(chǔ)的用戶 session ID 值相匹配。程序默認(rèn)只在 cookie 中存儲(chǔ) session。如果您要在數(shù)據(jù)庫(kù)中存儲(chǔ) session 的話,需要按照下面指示的方法,在您的數(shù)據(jù)庫(kù)中創(chuàng)建需要的數(shù)據(jù)表。
CI的session 信息默認(rèn)是放在cookie里吧,只有在config.php啟用數(shù)據(jù)庫(kù)才把session_data 和user_data 放在數(shù)據(jù)庫(kù)。
你用 IE 的 Internet 設(shè)置里的查看文件夾來(lái)查看。
sql server 2023怎么建數(shù)據(jù)庫(kù)
、啟用FileTable
1、修改數(shù)據(jù)庫(kù)引擎屬性
打SQL Server配置管理器修改SQL Server數(shù)據(jù)庫(kù)引擎屬性使用頁(yè)針 Microsoft SQL Server 2023安裝啟用 FILESTREAM
?。?)針 Transact-SQL 訪問(wèn)啟用 FILESTREAM
選項(xiàng)針 Transact-SQL 訪問(wèn)啟用 FILESTREAM 必須選控制選項(xiàng)才能使用其控制選項(xiàng)啟用選項(xiàng)能添加FileStream文件組
(2)針文件 I/O 流訪問(wèn)啟用 FILESTREAM
選項(xiàng)針 FILESTREAM 啟用 Win32 流訪問(wèn)
?。?)Windows 共享名
使用控制選項(xiàng)輸入用存儲(chǔ) FILESTREAM 數(shù)據(jù) Windows 共享名稱默認(rèn)該SQL Server實(shí)例名稱
(4)允許遠(yuǎn)程客戶端針 FILESTREAM 數(shù)據(jù)啟用流訪問(wèn)
選控制選項(xiàng)允許遠(yuǎn)程客戶端訪問(wèn)服務(wù)器 FILESTREAM 數(shù)據(jù)
2、修改服務(wù)器屬性
打SQL Server Management Studio修改該實(shí)例配置默認(rèn)配置:
述選項(xiàng)解釋:
(1)FILESTREAM 訪問(wèn)級(jí)別顯示 SQL Server 實(shí)例支持 FILESTREAM 前級(jí)別若要更改訪問(wèn)級(jí)別請(qǐng)選擇值:
已禁用
二進(jìn)制型象 (BLOB) 數(shù)據(jù)存儲(chǔ)文件系統(tǒng)默認(rèn)值即filestream access level=0
已啟用 Transact-SQL 訪問(wèn)
使用 Transact-SQL 訪問(wèn) FILESTREAM 數(shù)據(jù)能通文件系統(tǒng)進(jìn)行訪問(wèn)即filestream access level=1
已啟用完全訪問(wèn)
FILESTREAM 數(shù)據(jù)使用 Transact-SQL 及通文件系統(tǒng)進(jìn)行訪問(wèn)即filestream access level=0
注意:首啟用 FILESTREAM 您能需要重新啟計(jì)算機(jī)才能配置驅(qū)程序
?。?)FILESTREAM 共享名稱顯示安裝程選擇 FILESTREAM 共享讀名稱
本實(shí)驗(yàn)我FILESTREAM 訪問(wèn)級(jí)別 設(shè)定:已啟用完全訪問(wèn)
通T-SQL腳本執(zhí)行則運(yùn)行腳本:
EXEC sys.sp_configure N’filestream access level’, N’2′
RECONFIGURE WITH OVERRIDE
注意:設(shè)置完重啟實(shí)例
3、配置防火墻
若要防火墻保護(hù)環(huán)境使用 FILESTREAM客戶端服務(wù)器都必須能夠 DNS 名稱解析包含 FILESTREAM 文件服務(wù)器FILESTREAM 要求 Windows 文件共享端口處于打狀態(tài)
二、配置文件組
1、添加文件組
完述操作該數(shù)據(jù)庫(kù)添加專用于FileStream文件組
通腳本操作請(qǐng)運(yùn)行腳本:
ALTER DATABASE ADD FILEGROUP CONTAINS FILESTREAM
2、添加文件
完述操作該數(shù)據(jù)庫(kù)添加FilStream類型數(shù)據(jù)庫(kù)文件
本例系統(tǒng)并沒(méi)FileStream數(shù)據(jù)文件類型創(chuàng)建mdf或ndf文件文件夾C:\SqlData面自創(chuàng)建邏輯名稱命名文件夾即 C:\SqlData\FileData其filestream.hdr 文件 FILESTREAM 容器文件數(shù)據(jù)庫(kù)刪除mdf、ndf、log連同文件夾都刪除
通腳本操作請(qǐng)運(yùn)行腳本:
ALTER DATABASE ADD FILE ( NAME = N’FileData’, FILENAME = N’C:\SqlData\FileData’ ) TO FILEGROUP
注意:例運(yùn)行腳本前必須存C:\SqlData建議使用右側(cè)選擇按鈕選擇路徑路徑存報(bào)錯(cuò):
同能存重復(fù)文件夾即能存C:\SqlData\FileData否則報(bào)錯(cuò):
3、啟非事務(wù)訪問(wèn)
FileTable 使 Windows 應(yīng)用程序獲取 FILESTREAM 數(shù)據(jù) Windows 文件句柄需要 SQL Server 事務(wù)允許 SQL Server 存儲(chǔ)文件進(jìn)行非事務(wù)性訪問(wèn)必須要包含 FileTable 每數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)級(jí)別指定所需非事務(wù)性訪問(wèn)級(jí)別
選項(xiàng)解釋:
?。?)FILESTREAM 非事務(wù)訪問(wèn)
文件系統(tǒng) FileTables 存儲(chǔ) FILESTREAM 數(shù)據(jù)非事務(wù)性訪問(wèn)指定選項(xiàng):OFF、READ_ON 或 FULL
服務(wù)器未啟用 FILESTREAM則該值設(shè)置 OFF 并且禁用本實(shí)驗(yàn)其設(shè)置FULL
(2)FILESTREAM 目錄名稱
與所選數(shù)據(jù)庫(kù)相關(guān)聯(lián) FILESTREAM 數(shù)據(jù)指定目錄名稱 FileTable 文件夾層結(jié)構(gòu)數(shù)據(jù)庫(kù)級(jí)目錄實(shí)例級(jí)別 FILESTREAM 指定共享名稱級(jí)及數(shù)據(jù)庫(kù)創(chuàng)建 FileTable 父級(jí)
啟用非事務(wù)性訪問(wèn)沒(méi)提供目錄名稱則必須提供才能數(shù)據(jù)庫(kù)創(chuàng)建 FileTable
通腳本執(zhí)行:
ALTER DATABASE db01
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N’ImageFiles’ )
注意:更改現(xiàn)數(shù)據(jù)庫(kù)調(diào)用帶 DIRECTORY_NAME FILESTREAM 選項(xiàng) ALTER DATABASE (Transact-SQL) 語(yǔ)句使用些選項(xiàng)更改目錄名稱數(shù)據(jù)庫(kù)必須獨(dú)占式鎖定沒(méi)打文件句柄
說(shuō)明:檢查否數(shù)據(jù)庫(kù)啟用非事務(wù)性訪問(wèn)查詢目錄視圖腳本:
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options
三、創(chuàng)建FileTable
1、創(chuàng)建第FileTable
SQL Server Management Studio提供腳本模板要想創(chuàng)建FileTable用腳本完:
USE db01
CREATE TABLE ImageTable1 AS FILETABLE
官范本:
USE
CREATE TABLE . AS FILETABLE ON FILESTREAM_ON
WITH
(FILETABLE_DIRECTORY = N’ImageTable1′, FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)
2、創(chuàng)建第二FileTable
CREATE TABLE ImageTable2 AS FILETABLE
3、獲取共享路徑
文件表創(chuàng)建相應(yīng)產(chǎn)文件表共享目錄該目錄路徑通內(nèi)建函數(shù)獲取:
SELECT FileTableRootPath(‘ImageTable1’)
本實(shí)驗(yàn)所返結(jié):\\SQL1\SqlFile\ImageFiles\ImageTable1
4、查看
通Windows資源管理器見(jiàn)已經(jīng)創(chuàng)建GUID命名文件夾
通SQL Server Management Studio查看表結(jié)構(gòu)
四、操作
1、向文件夾添加文件
通 Windows資源管理器向文件夾\\SQL1\SqlFile\ImageFiles\ImageTable1添加文件A01.GIF運(yùn)行腳本:
select * from ImageTable1
結(jié):
見(jiàn) SQL Server自Table添加記錄
2、文件改名
運(yùn)行腳本:
update ImageTable1 set name=’Cup.GIF’ where name=’A01.GIF’
通Windows資源管理器查看文件夾\\SQL1\SqlFile\ImageFiles\ImageTable1見(jiàn)文件A01.GIF已經(jīng)改名Cup.GIF
3、查看共享文件夾
我繼續(xù)復(fù)制其文件通Windows資源管理器查看文件夾
4、刪除文件
使用腳本刪除例:
Delete ImageTable1 where name=’Cup.GIF’
或者通Windows資源管理器直接刪除該文件
五、備份原
1、備份數(shù)據(jù)庫(kù)
使用 SQL Server 備份數(shù)據(jù)庫(kù)FILESTREAM 數(shù)據(jù)與數(shù)據(jù)庫(kù)結(jié)構(gòu)化數(shù)據(jù)起備份
2、部備份
ci數(shù)據(jù)庫(kù)操作的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于ci數(shù)據(jù)庫(kù)操作,簡(jiǎn)化CI數(shù)據(jù)庫(kù)操作,提高開(kāi)發(fā)效率,CI的session生成后放在哪,sql server 2023怎么建數(shù)據(jù)庫(kù)的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計(jì),成都高端網(wǎng)站制作開(kāi)發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營(yíng)銷讓企業(yè)網(wǎng)站產(chǎn)生價(jià)值。
文章標(biāo)題:簡(jiǎn)化CI數(shù)據(jù)庫(kù)操作,提高開(kāi)發(fā)效率(ci數(shù)據(jù)庫(kù)操作)
URL地址:http://m.fisionsoft.com.cn/article/dpgepji.html


咨詢
建站咨詢
