国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

directory search
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
characters

查詢基礎(chǔ)

常規(guī)查詢

若要提交查詢,請使用查詢職能:

$this->db->query('YOUR QUERY HERE');

query()函數(shù)在運(yùn)行“讀取”類型查詢時(shí)返回?cái)?shù)據(jù)庫結(jié)果對象,您可以使用該查詢來顯示結(jié)果。當(dāng)“寫入”類型的查詢運(yùn)行時(shí),它只是返回TRUE或FALSE,取決于成功或失敗。在檢索數(shù)據(jù)時(shí),您通常會(huì)將查詢分配給您自己的變量,如下所示:

$query = $this->db->query('YOUR QUERY HERE');

簡化查詢

simple_query方法是$這- > DB->查詢()方法的簡化版本。它不會(huì)返回?cái)?shù)據(jù)庫結(jié)果集,也不會(huì)設(shè)置查詢計(jì)時(shí)器或編譯綁定數(shù)據(jù),也不會(huì)存儲(chǔ)查詢以進(jìn)行調(diào)試。它只是讓你提交一個(gè)查詢。大多數(shù)用戶很少使用此功能。

它返回?cái)?shù)據(jù)庫驅(qū)動(dòng)程序的“執(zhí)行”函數(shù)返回的任何內(nèi)容。對于寫入類型查詢(例如INSERT,DELETE或UPDATE語句(這是真正應(yīng)該使用的語句)以及成功的資源/對象)的成功或失敗,對于具有可捕獲結(jié)果的查詢,這通常為TRUE / FALSE。

if ($this->db->simple_query('YOUR QUERY')){
        echo "Success!";}else{
        echo "Query failed!";}

PostgreSQL的pg_exec()函數(shù)(例如)總是會(huì)在成功時(shí)返回資源,即使是寫入類型查詢也是如此。所以記住,如果你正在尋找一個(gè)布爾值。

手動(dòng)使用數(shù)據(jù)庫前綴

如果您已經(jīng)配置了數(shù)據(jù)庫前綴,并希望將其添加到表名中以供在本機(jī)SQL查詢中使用,則可以使用以下方法:

$this->db->dbprefix('tablename'); // outputs prefix_tablename

如果出于任何原因,您希望在不需要?jiǎng)?chuàng)建新連接的情況下以編程方式更改前綴,則可以使用以下方法:

$this->db->set_dbprefix('newprefix');$this->db->dbprefix('tablename'); // outputs newprefix_tablename

保護(hù)標(biāo)識(shí)符

在許多數(shù)據(jù)庫中,建議保護(hù)表和字段名稱 - 例如在MySQL中使用反引號。查詢生成器查詢會(huì)自動(dòng)受到保護(hù),但是如果您需要手動(dòng)保護(hù)可以使用的標(biāo)識(shí)符:

$this->db->protect_identifiers('table_name');

重要

雖然查詢生成器將盡最大努力正確引用您提供的任何字段和表名稱,但請注意,它不適用于任意用戶輸入。不要為其提供未經(jīng)處理的用戶數(shù)據(jù)。

假設(shè)你在你的數(shù)據(jù)庫配置文件中指定了一個(gè)前綴,這個(gè)函數(shù)也會(huì)為你的表添加一個(gè)表前綴。要通過第二個(gè)參數(shù)啟用前綴設(shè)置TRUE(布爾值):

$this->db->protect_identifiers('table_name', TRUE);

轉(zhuǎn)義查詢

在將數(shù)據(jù)提交到數(shù)據(jù)庫之前,將其轉(zhuǎn)義是一種非常好的安全實(shí)踐。CodeIgniter有三種方法可以幫助您這樣做:

  • $ this-> db-> escape()該函數(shù)確定數(shù)據(jù)類型,以便它只能轉(zhuǎn)義字符串?dāng)?shù)據(jù)。它還會(huì)自動(dòng)為數(shù)據(jù)添加單引號,因此您不必:$ sql =“INSERT INTO table(title)VALUES(”。$ this-> db-> escape($ title)?!埃?

  1. $ this-> db-> escape_str()無論類型如何,該函數(shù)都會(huì)將傳遞給它的數(shù)據(jù)轉(zhuǎn)義出來。大多數(shù)時(shí)候你會(huì)使用上述功能而不是這個(gè)功能。使用這樣的功能:

$ sql =“INSERT INTO table(title)VALUES('”。$ this-> db-> escape_str($ title)?!?#39;)”;

  • $ this-> db-> escape_like_str()當(dāng)在LIKE條件下使用字符串時(shí),應(yīng)使用此方法,以便字符串中的LIKE通配符('%','_')也能正確轉(zhuǎn)義。

$search = '20% raise';$sql = "SELECT id FROM table WHERE column LIKE '%" .
    $this->db->escape_like_str($search)."%' ESCAPE '!'";

重要

escape_like_str()方法使用'!' (感嘆號)為LIKE條件轉(zhuǎn)義特殊字符。因?yàn)榇朔椒〞?huì)轉(zhuǎn)義部分字符串,而您將自行換行,所以它不能自動(dòng)ESCAPE '!'為您添加條件,因此您必須手動(dòng)執(zhí)行此操作。

查詢綁定

綁定使您能夠簡化查詢語法,方法是讓系統(tǒng)為您將查詢放在一起。考慮以下示例:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";$this->db->query($sql, array(3, 'live', 'Rick'));

查詢中的問號將自動(dòng)替換為查詢函數(shù)第二個(gè)參數(shù)中數(shù)組中的值。

綁定也適用于數(shù)組,數(shù)組將轉(zhuǎn)換為IN集:

$sql = "SELECT * FROM some_table WHERE id IN ? AND status = ? AND author = ?";$this->db->query($sql, array(array(3, 6), 'live', 'Rick'));

產(chǎn)生的查詢將是:

SELECT * FROM some_table WHERE id IN (3,6) AND status = 'live' AND author = 'Rick'

使用綁定的次要好處是自動(dòng)轉(zhuǎn)義值,從而產(chǎn)生更安全的查詢。您不必記住手動(dòng)轉(zhuǎn)義數(shù)據(jù);引擎會(huì)自動(dòng)為您執(zhí)行此操作。

處理錯(cuò)誤

$這 - > DB->誤差();

如果您需要獲取發(fā)生的最后一個(gè)錯(cuò)誤,那么error()方法將返回一個(gè)包含其代碼和消息的數(shù)組。這里有個(gè)簡單的例子:

if ( ! $this->db->simple_query('SELECT `example_field` FROM `example_table`')){
        $error = $this->db->error(); // Has keys 'code' and 'message'}
Previous article: Next article: