㈠ ci框架在查詢資料庫,如何返回一個一維數組,我查的是多條數據的一個欄位
直接取一維數組是取不到了
只能把二維轉成一維的了:
用result_array取到二維數組
再用array_column,轉為一維數組
例:
$sql = 'select name from user';
$result = $this->db->query($sql)->result_array();
$one = array_column($result, 'name');
print_r($one);//這個就是一維數組了
㈡ 如何配置ci框架連接sqlserver
一、啟用FileTable
1、修改資料庫引擎的屬性
打開「SQL Server配置管理器」,修改SQL Server資料庫引擎的屬性。使用此頁可針對此 Microsoft SQL Server 2012安裝啟用 FILESTREAM。
(1)針對 Transact-SQL 訪問啟用 FILESTREAM
選中此項可針對 Transact-SQL 訪問啟用 FILESTREAM。 必須選中此控制選項,才能使用其他控制選項。如果不啟用此選項,就不能添加FileStream文件組。
(2)針對文件 I/O 流訪問啟用 FILESTREAM
選中此項可針對 FILESTREAM 啟用 Win32 流訪問。
(3)Windows 共享名
使用此控制選項可輸入將用來存儲 FILESTREAM 數據的 Windows 共享的名稱。默認為該SQL Server實例的名稱。
(4)允許遠程客戶端針對 FILESTREAM 數據啟用流訪問
選中此控制選項可允許遠程客戶端訪問此伺服器上的此 FILESTREAM 數據。
2、修改伺服器的屬性
打開「SQL Server Management Studio」,修改該實例的配置。默認配置如下:
上述選項解釋如下:
(1)「FILESTREAM 訪問級別」顯示 SQL Server 實例上支持的 FILESTREAM 的當前級別。若要更改訪問級別,請選擇以下值之一:
已禁用
無法將二進制大型對象 (BLOB) 數據存儲在文件系統中。此為默認值。即filestream access level=0
已啟用 Transact-SQL 訪問
可使用 Transact-SQL 訪問 FILESTREAM 數據,但不能通過文件系統進行訪問。即filestream access level=1
已啟用完全訪問
FILESTREAM 數據可使用 Transact-SQL 以及通過文件系統進行訪問。即filestream access level=0
注意:在首次啟用 FILESTREAM 時,您可能需要重新啟動計算機才能配置驅動程序。
(2)「FILESTREAM 共享名稱」顯示在安裝過程中選擇的 FILESTREAM 共享的只讀名稱。
在本次實驗中,我們將「FILESTREAM 訪問級別」 設定為:已啟用完全訪問。
如果是通過T-SQL腳本執行,則運行以下腳本:
EXEC sys.sp_configure N'filestream access level', N'2'
RECONFIGURE WITH OVERRIDE
注意:設置完成之後,重啟實例。
3、配置防火牆
若要在防火牆保護的環境中使用 FILESTREAM,客戶端和伺服器都必須能夠將 DNS 名稱解析為包含 FILESTREAM 文件的伺服器。FILESTREAM 要求 Windows 文件共享埠 139 和 445 處於打開狀態。
二、配置文件組
1、添加文件組
完成上述操作之後,就可以為該資料庫添加專用於FileStream的文件組。
如果是通過腳本操作,請運行以下腳本:
ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM
2、添加文件
完成上述操作之後,就可以為該資料庫添加FilStream類型的資料庫文件。
在本例中,系統並沒有為「FileStream數據」的文件類型創建mdf或ndf文件,而是在文件夾C:\SqlData下面自動創建以邏輯名稱命名的文件夾,即 C:\SqlData\FileData。其中filestream.hdr 文件是 FILESTREAM 容器的頭文件。當這個資料庫被刪除時,mdf、ndf、log連同這個文件夾都會被刪除。
如果是通過腳本操作,請運行以下腳本:
ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]
注意:在上例中,在運行腳本之前,必須存在C:\SqlData,建議使用右側的選擇按鈕選擇路徑。如果路徑不存在,就會報錯:
同時不能存在重復的文件夾,即不能存在C:\SqlData\FileData。否則也會報錯:
3、啟動非事務訪問
FileTable 使 Windows 應用程序可以獲取 FILESTREAM 數據的 Windows 文件句柄而不需要 SQL Server 事務。為了允許對 SQL Server 中存儲的文件進行此非事務性訪問,必須為要包含 FileTable 的每個資料庫在資料庫級別上指定所需的非事務性訪問級別。
選項解釋如下:
(1)FILESTREAM 非事務訪問
為從文件系統到 FileTables 中存儲的 FILESTREAM 數據的非事務性訪問指定以下選項之一:OFF、READ_ONLY 或 FULL。
如果在伺服器上未啟用 FILESTREAM,則該值將設置為 OFF 並且被禁用。在本次實驗中,將其設置為FULL。
(2)FILESTREAM 目錄名稱
為與所選資料庫相關聯的 FILESTREAM 數據指定目錄名稱。在 FileTable 文件夾層次結構中,此資料庫級目錄將成為在實例級別為 FILESTREAM 指定的共享名稱的子級以及在資料庫中創建的 FileTable 的父級。
如果啟用非事務性訪問時沒有提供目錄名稱,則在以後必須提供它,這樣才能在資料庫中創建 FileTable。
如果是通過腳本執行,如下:
ALTER DATABASE db01
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )
注意:更改現有資料庫時,調用帶 DIRECTORY_NAME FILESTREAM 選項的 ALTER DATABASE (Transact-SQL) 語句。使用這些選項更改目錄名稱時,資料庫必須以獨占方式鎖定,沒有打開的文件句柄。
說明:為檢查是否在資料庫上啟用了非事務性訪問,可以查詢目錄視圖,腳本如下:
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options
三、創建FileTable
1、創建第一個FileTable
「SQL Server Management Studio」只提供一個腳本模板,要想創建FileTable還是得用腳本完成:
USE db01
CREATE TABLE ImageTable1 AS FILETABLE
官方的範本為:
USE [db01]
CREATE TABLE [dbo].[ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]
WITH
(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)
2、創建第二個FileTable
CREATE TABLE ImageTable2 AS FILETABLE
3、獲取共享路徑
文件表創建之後,就會相應的產生一個文件表共享目錄,該目錄路徑可以通過內建函數獲取:
SELECT FileTableRootPath('ImageTable1')
本次實驗所返回的結果為:\\SQL1\SqlFile\ImageFiles\ImageTable1
4、查看
通過Windows資源管理器,可見已經創建了以GUID命名的文件夾。
通過SQL Server Management Studio,查看錶的結構。
四、操作
1、向文件夾中添加文件
通過 「Windows資源管理器」,向文件夾\\SQL1\SqlFile\ImageFiles\ImageTable1中添加一個文件A01.GIF。然後運行腳本:
select * from ImageTable1
結果如下:
可見, SQL Server自動在Table中添加了記錄。
2、文件改名
運行以下腳本:
update ImageTable1 set name='Cup.GIF' where name='A01.GIF'
通過「Windows資源管理器」,查看文件夾\\SQL1\SqlFile\ImageFiles\ImageTable1,可見文件A01.GIF已經被改名為Cup.GIF 。
3、查看共享文件夾
我們可以繼續復制其他文件,然後通過「Windows資源管理器」,查看文件夾。
4、刪除文件
可以使用腳本刪除,例如:
Delete ImageTable1 where name='Cup.GIF'
或者,通過「Windows資源管理器」直接刪除該文件。
五、備份和還原
1、備份資料庫
使用 SQL Server 備份資料庫時,FILESTREAM 數據將與資料庫中的結構化數據一起備份。
2、部分備份
如果不想將 FILESTREAM 數據與關系數據一起備份,則可以使用部分備份將 FILESTREAM 文件組排除在外。
㈢ 業務檔案包括哪些
檔案工作,有狹義解釋和廣義解釋之分。從狹義上說,檔案工作是指管理檔案和提供檔案信息為各項社會實踐服務的一項專門業務。從廣義上說,包括檔案事業管理工作、檔案室工作、檔案館工作、檔案專業教育、檔案科學技術研究、檔案宣傳出版、檔案國際交往活動等。
(1)檔案的收集。是檔案室和檔案館接收和徵集檔案的總稱。包括檔案室對本單位歸檔案卷的接收,檔案館對現行機關或撤銷機關移交檔案的接收、對社會人士捐贈檔案的接收、對分散在社會上的珍貴檔案的徵集。檔案收集的任務,是解決檔案分散狀況與保管、利用檔案要求合理集中的矛盾,只有「化分散為集中」,才便於保管和利用。
(2)檔案的整理。是將零散文件分門別類地組成檔案有機體的一項工作。包括分類、立卷、卷內文件排列、案卷封面的編制、案卷的排列、案卷目錄的編制等一系列工作程序。檔案整理的任務,是解決檔案零散狀態與保管、利用檔案要求系統化的矛盾,只有「化零散為系統」,使檔案由無序狀態轉化為有序狀態,才便於保管和利用。
(3)檔案的鑒定。指檔案保存價值的鑒定,是鑒別檔案價值的大小、確定檔案保管期限、決定檔案保存與銷毀的一項工作。檔案鑒定的任務,是解決檔案的量大質雜與保管、利用檔案要求優質化的矛盾,只有「化質雜為優質」,淘汰檔案中的無用部分,存留其有用部分,才便於保管利用。
(4)檔案的保管。是保護檔案的安全、延長檔案壽命的一項工作。包括檔案保護技術工作和庫房管理工作。檔案保管的任務,是解決檔案的易損性與社會要求長遠保管和利用檔案的矛盾,只有最大限度地增長檔案原件的壽命,或者通過縮微復制保護檔案信息,使之久傳,才能保證社會長遠利用。
(5)檔案的編目。又稱檔案檢索。是對檔案內容和形式進行分析、選擇、濃縮和記錄,並按照一定次序編排成為各種目錄的工作過程。包括館藏目錄、檢索性目錄和介紹性目錄的編制。編目工作的任務,是解決檔案數量龐大、內容復雜和利用者對檔案信息特定需求之間的矛盾。各種檔案目錄可幫助利用者了解館藏檔案的內容和成分,檢索到所需要的檔案信息,也用於檔案館(室)的檔案管理。
(6)檔案的編研。指檔案館(室)的編輯與研究工作。包括編輯檔案文獻匯編、編寫綜合參考資料以及參加編史修志等。其主要任務是:按照一定的選題,將重要的檔案編輯成為文獻出版物,如檔案史料匯編或叢編,重要文件匯編或政策法令匯編,以及科學技術資料匯編等;或者將檔案信息濃縮化、系統化、編成大事記、組織沿革、基礎數字匯編、專題概要等,便於不同利用對象的利用。
(7)檔案的提供利用。亦稱檔案信息的輸出。是通過多種信息傳輸渠道和媒介,將檔案信息傳遞給利用者的工作過程。它是檔案工作為各項社會實踐服務的直接體現,它把檔案的作用由可能性變成現實性,通過它可以把檔案工作搞活,把檔案這種「死材料」變成「活材料」,在各項社會實踐中發揮作用。
(8)檔案的統計。它以表格數字形式全面地反映檔案、檔案工作和檔案事業狀況。包括檔案的收進、移出、整理、鑒定、保管、利用情況,以及檔案機構、人員、經費、設備的登記和統計。檔案統計是取得反饋信息、對檔案工作進行監督的重要手段之一,是檔案部門了解情況、總結經驗、進行決策、制訂計劃的依據。
㈣ ci 框架 怎麼寫sql 判斷一個欄位不為空
ci 框架 怎麼寫sql 判斷一個欄位不為空
$this->db->where ('name is not null');
直接這樣寫 就可以了。
㈤ 關於PHP裡面CI框架的問題
那是CI的問題,只能見一個文件夾,如果想多個文件夾,記得找我我晚上有時間1215175666
㈥ ci是怎麼樣防sql注入的
用
CI
的
Query
Builder
就可以防
SQL
注入,不用
PDO
的預處理機制。
其實防
SQL
注入很簡單,做好轉義就行了,最重要的其實不是技術,而是安全意識。
㈦ ci是怎麼樣防sql注入的
最簡單最容易的是限制用戶輸入。簡單點的就是不允許用戶輸入單引號和--,因為單引號號--在SQL中都是影響執行的,兩種方式一種是在JSP中加判斷。另一種是在SQL拼接是對單引號和--等進行轉義,例如:str=str.replace("'","''");等等,還有
㈧ 請教CI如何捕獲SQL語句異常
try{
//代碼 代碼中通常會出現不知情卻在情理中的錯誤
int age = a.getAge();//如果a對象為空,你卻調用它的方法就會報NullPointerException異常
}catch(//異常類型 NullPointerException ne){//獲取你可以預知的異常
//異常處理就是你捕獲了這個異常你要這個異常進行哪種操作
//一般的操作就是記錄到日誌里
//然後拋出去或者返回狀態
}catch(Exception ex){//這個是所有異常的父類
//因為很多異常是不可預知的
//記錄到日誌里
//然後拋出去或者返回狀態
}
㈨ ci框架如何使用 原生sql
是啊$sql = 'delete select update insert'; $this->db->query($sql);原生的沒有框架執速度快的,你不要誤導別人拉句子就是試驗品 查看更多答案>>
㈩ CI框架如何在控制器裡面鏈接資料庫.然後執行SQL語句
在conf的自動載入,開啟database自動載入,配置好資料庫賬號密碼等,然後在控制器中如下:
$userInfo = $this->db->get('user'); //user為user表名
或者
$query = "select * from user";
$this->db->query($query);