當前位置:首頁 » 編程語言 » ci框架sql

ci框架sql

發布時間: 2023-03-09 15:47:47

㈠ 如何查看CI執行的sql

如何查看CI執行的SQL
是啊$sql = 'delete select update insert'; $this->db->query($sql);
原生的沒有框架執速度快的

php CI框架修改數據的方法

CI框架下的PHP增刪改查總結:
controllers下的 cquery.php文件
[php] view plain
<?php

class CQuery extends Controller {

//構造函數
function CQuery() {
parent::Controller();
// $this->load->database();

}

function index() {
//調用model 其中train為外層文件夾 MQuery為model名稱 queryList為重命名
$this->load->model('train/MQuery','queryList');
//獲得返回的結果集 這里確定調用model中的哪個方法
$result = $this->queryList->queryList();
//將結果集賦給res
$this->smarty->assign('res',$result);
//跳轉到顯示頁面
$this->smarty->view('train/vquery.tpl');
}

//進入新增頁面
function addPage() {
$this->smarty->view('train/addPage.tpl');
}

//新增
function add() {
//獲得前台數據
//用戶名
$memberName = $this->input->post('memberName');
//密碼
$password = $this->input->post('password');
//真實姓名
$userRealName = $this->input->post('userRealName');
//性別
$sex = $this->input->post('sex');
//出生日期
$bornDay = $this->input->post('bornDay');
//e_mail
$eMail = $this->input->post('eMail');
//密碼問題
$question = $this->input->post('question');
//密碼答案
$answer = $this->input->post('answer');
//調用model
$this->load->model('train/MQuery','addRecord');
//向model中的addRecord傳值
$result = $this->addRecord->addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);
//判斷返回的結果,如果返回true,則調用本頁的index方法,不要寫 $result == false 因為返回的值未必是false 也有可能是""
if ($result) {
$this->index();
} else {
echo "add failed.";
}
}
//刪除
function deletePage() {
//獲得ID
$deleteID = $this->uri->segment(4);
//調用model
$this->load->model('train/MQuery','delRecord');
//將值傳入到model的delRecord方法中
$result = $this->delRecord->delRecord($deleteID);
//判斷返回值
if ($result) {
$this->index();
} else {
echo "delect failed.";
}
}
//修改先查詢
function changePage() {
$changeID = $this->uri->segment(4);
$this->load->model('train/MQuery','changeRecord');
$result = $this->changeRecord->changeRecord($changeID);
//將結果集賦給res
$this->smarty->assign('res',$result);

//跳轉到顯示頁面
$this->smarty->view('train/changePage.tpl');
}
//修改
function change() {
//獲得前台數據
//ID
$ID = $this->input->post('id');
//用戶名
$memberName = $this->input->post('memberName');
//密碼
$password = $this->input->post('password');
//真實姓名
$userRealName = $this->input->post('userRealName');
//性別
$sex = $this->input->post('sex');
//出生日期
$bornDay = $this->input->post('bornDay');
//e_mail
$eMail = $this->input->post('eMail');
//密碼問題
$question = $this->input->post('question');
//密碼答案
$answer = $this->input->post('answer');
//調用model
$this->load->model('train/MQuery','change');
//向model中的change傳值
$result = $this->change->change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);
//判斷返回的結果,如果返回true,則調用本頁的index方法,不要寫 $result == false 因為返回的值未必是false 也有可能是""
if ($result) {
$this->index();
} else {
echo "change failed.";
}
}
}
models中的 mquery.php 文件
[php] view plain
<?php

class MQuery extends Model {
//構造函數
function MQuery() {
parent::Model();
//連接資料庫
$this->load->database();
}

//查詢列表
function queryList() {
//防止select出的數據存在亂碼問題
//mysql_query("SET NAMES GBK");
//SQL語句
$sql = "SELECT ID,member_name,sex,e_mail FROM user_info_t";
//執行SQL
$rs = $this->db->query($sql);
//將查詢結果放入到結果集中
$result = $rs->result();
//關閉資料庫
$this->db->close();
//將結果集返回
return $result;
}

//新增
function addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {
//防止select出的數據存在亂碼問題
//mysql_query("SET NAMES GBK");
//SQL語句
$sql = "INSERT INTO user_info_t (member_name,password,user_real_name,sex,born_day,e_mail,question,answer) " .
"VALUES ('$memberName','$password','$userRealName','$sex','$bornDay','$eMail','$question','$answer')";
//執行SQL
$result = $this->db->query($sql);
//關閉資料庫
$this->db->close();
//返回值
return $result;
}

//刪除
function delRecord($deleteID) {
//防止select出的數據存在亂碼問題
//mysql_query("SET NAMES GBK");
$sql = "DELETE FROM user_info_t WHERE ID = $deleteID";
$result = $this->db->query($sql);
$this->db->close();
return $result;
}

//修改前查詢
function changeRecord($changeID) {
//防止select出的數據存在亂碼問題
//mysql_query("SET NAMES GBK");
$sql = "SELECT ID,member_name,password,user_real_name,sex,born_day,e_mail,question,answer FROM user_info_t WHERE ID = $changeID";
//執行SQL
$rs = $this->db->query($sql);
$result = $rs->row();//$result = $rs[0]
//關閉資料庫
$this->db->close();
//將結果集返回
return $result;
}

//修改
function change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {
//防止select出的數據存在亂碼問題
//mysql_query("SET NAMES GBK");
//SQL語句
$sql = "update user_info_t set member_name = '$memberName',password = '$password', user_real_name = '$userRealName'," .
"sex = '$sex',born_day = '$bornDay',e_mail = '$eMail',question = '$question',answer = '$answer'" .
"where ID = $ID";
//執行SQL
$result = $this->db->query($sql);
//關閉資料庫
$this->db->close();
//返回值
return $result;
}
}

views 下的 addPage.tpl文件

[php] view plain
<html>
<head>
</head>
<body><form action="{{site_url url='train/cquery/add'}}" method="post">
<table border='1'>

<tr>
<td>用戶名</td>
<td><input type="text" class="text" name="memberName" id="memberName"/></td>
</tr>
<tr>
<td>密碼</td>
<td><input type="text" class="text" name="password" id="password"/></td>
</tr>
<tr>
<td>真實姓名</td>
<td><input type="text" class="text" name="userRealName" id="userRealName"/></td>
</tr>
<tr>
<td>性別</td>
<td><input type="text" class="text" name="sex" id="sex"/></td>
</tr>
<tr>
<td>出生日期</td>
<td><input type="text" class="text" name="bornDay" id="bornDay"/></td>
</tr>
<tr>
<td>e_mail</td>
<td><input type="text" class="text" name="eMail" id="eMail"/></td>
</tr>
<tr>
<td>密碼問題</td>
<td><input type="text" class="text" name="question" id="question"/></td>
</tr>
<tr>
<td>密碼答案</td>
<td><input type="text" class="text" name="answer" id="answer"/></td>
</tr>

</table>
<table>
<tr>
<td><input type="submit" class="button" name="OK" value="提交" />
</td>
</tr>
</table></form>
</body>
</html>

㈢ 如何配置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 文件組排除在外。

㈣ CI框架如何在控制器裡面鏈接資料庫.然後執行SQL語句

在conf的自動載入,開啟database自動載入,配置好資料庫賬號密碼等,然後在控制器中如下:
$userInfo = $this->db->get('user'); //user為user表名
或者
$query = "select * from user";
$this->db->query($query);

㈤ ci框架如何使用 原生sql

是啊$sql = 'delete select update insert'; $this->db->query($sql);原生的沒有框架執速度快的,你不要誤導別人拉句子就是試驗品 查看更多答案>>

㈥ ci 框架 怎麼寫sql 判斷一個欄位不為空

ci 框架 怎麼寫sql 判斷一個欄位不為空
$this->db->where ('name is not null');
直接這樣寫 就可以了。

㈦ CI框架裡面怎麼導出資料庫的數據到Excel文件

首先我們使用SQLyogEnt工具,連接到mysql資料庫。
連接成功後在左側的目錄位置,找到需要的表,右鍵打開表
也可以直接在sql執行器中輸入:
select
*
from
datetable
name
打開這個表在sql執行器的下方,結果下方,最左側的位置,如下圖,有一個小圖標,滑鼠移動上面會浮出文字「導出為....」點擊這個圖標點擊後會彈出一個名為「導出為」的彈出窗口,選擇需要導出的文件格式:如csv、html、xnl等,在右側選擇導出的欄位在界面的最下方有一個輸入框,框中是程序默認的一個導出的路徑,也可以點擊路徑旁的按鈕,進行自定義導出文件路徑。

㈧ 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);//這個就是一維數組了

熱點內容
單本小說網站源碼 發布:2024-11-06 21:11:17 瀏覽:546
mtp緩存 發布:2024-11-06 21:06:43 瀏覽:21
P40存儲卡 發布:2024-11-06 21:02:15 瀏覽:921
大容量鐵電存儲器 發布:2024-11-06 21:02:12 瀏覽:451
淘寶課腳本 發布:2024-11-06 21:00:41 瀏覽:688
網路機櫃和伺服器櫃有什麼不同 發布:2024-11-06 20:50:11 瀏覽:965
戰地5如何查看所有伺服器 發布:2024-11-06 20:46:42 瀏覽:654
sql返回執行結果 發布:2024-11-06 20:30:55 瀏覽:961
雷蛇怎麼配置 發布:2024-11-06 19:45:04 瀏覽:508
pm伺服器地址怎麼填 發布:2024-11-06 19:40:35 瀏覽:769