亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Verzeichnis suchen
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
Figuren

查詢基礎

常規(guī)查詢

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

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

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

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

簡化查詢

simple_query方法是$這- > DB->查詢()方法的簡化版本。它不會返回數據庫結果集,也不會設置查詢計時器或編譯綁定數據,也不會存儲查詢以進行調試。它只是讓你提交一個查詢。大多數用戶很少使用此功能。

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

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

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

手動使用數據庫前綴

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

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

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

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

保護標識符

在許多數據庫中,建議保護表和字段名稱 - 例如在MySQL中使用反引號。查詢生成器查詢會自動受到保護,但是如果您需要手動保護可以使用的標識符:

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

重要

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

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

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

轉義查詢

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

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

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

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

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

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

重要

escape_like_str()方法使用'!' (感嘆號)為LIKE條件轉義特殊字符。因為此方法會轉義部分字符串,而您將自行換行,所以它不能自動ESCAPE '!'為您添加條件,因此您必須手動執(zhí)行此操作。

查詢綁定

綁定使您能夠簡化查詢語法,方法是讓系統為您將查詢放在一起??紤]以下示例:

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

查詢中的問號將自動替換為查詢函數第二個參數中數組中的值。

綁定也適用于數組,數組將轉換為IN集:

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

產生的查詢將是:

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

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

處理錯誤

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

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

if ( ! $this->db->simple_query('SELECT `example_field` FROM `example_table`')){
        $error = $this->db->error(); // Has keys 'code' and 'message'}
Vorheriger Artikel: N?chster Artikel: