午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    WordPress數(shù)據(jù)庫(kù)操作函數(shù)詳解
    來(lái)源:易賢網(wǎng) 閱讀:1291 次 日期:2014-08-27 15:34:58
    溫馨提示:易賢網(wǎng)小編為您整理了“WordPress數(shù)據(jù)庫(kù)操作函數(shù)詳解”,方便廣大網(wǎng)友查閱!

    為了便于訪問(wèn)數(shù)據(jù)庫(kù),WordPress提供了一個(gè)友好的數(shù)據(jù)庫(kù)操作類:wpdb,該類定義在/wp-includes/wp-db.php文件中。wpdb類封裝了所有的數(shù)據(jù)庫(kù)操作函數(shù),它是基于開源的數(shù)據(jù)庫(kù)操作類ezSQL進(jìn)行修改的,使其更適合于WordPress,也使其僅適用于mySQL數(shù)據(jù)庫(kù)。同時(shí),WordPress還提供了一個(gè)全局變量$wpdb,并將其實(shí)例化為wpdb類的對(duì)象。這樣我們就可以直接使用$wpdb來(lái)調(diào)用所有的數(shù)據(jù)庫(kù)操作函數(shù)。

    通過(guò)這個(gè)$wpdb對(duì)象,我們可以對(duì)WordPress數(shù)據(jù)庫(kù)進(jìn)行任何操作,包括建表、查詢、刪除、更新等。要注意的是,如果要在自定義函數(shù)中使用$wpdb,必須先將其全局化(global $wpdb;)。

    下面就詳細(xì)介紹一下WordPress的數(shù)據(jù)庫(kù)操作函數(shù):

    1、function query($query)

    這個(gè)函數(shù)是最基本的數(shù)據(jù)庫(kù)操作函數(shù),$query為SQL語(yǔ)句,提交給數(shù)據(jù)庫(kù)執(zhí)行,結(jié)果分兩種情況:

    1). 如果是“insert|delete|update|replace”, 返回受影響行數(shù),在“insert|replace”這種情況下,該函數(shù)會(huì)用$this->insert_id記錄下新插入的ID。

    2). 如果是“select”,該函數(shù)會(huì)用$this->last_result記錄下查詢到結(jié)果集,返回查詢到的記錄行數(shù)。

    如果出錯(cuò),則返回FALSE。

    實(shí)例:

    <?php

    $wpdb->query(

    "

    UPDATE $wpdb->posts

    SET post_parent = 7

    WHERE ID = 15 AND post_status = 'static'

    "

    );

    ?>

    2、function escape($data)

    使用反斜線引用數(shù)據(jù),也就是使用魔術(shù)引號(hào)。

    實(shí)例:

    <?php

    $name = $wpdb->escape($name);

    $email = $wpdb->escape($email);

    $wpdb->query("INSERT INTO myusers (id, name, email) VALUES (NULL, '$name', '$email')");

    ?>

    3、function insert($table, $data, $format = null)

    這是插入記錄函數(shù),第一個(gè)參數(shù)是表的字段數(shù)組,第二個(gè)是數(shù)據(jù)數(shù)組,第三個(gè)用于規(guī)定$data中每個(gè)值的數(shù)據(jù)類型。插入數(shù)據(jù)返回1,否則為0。

    實(shí)例:

    <?php

    $wpdb->insert(

    'table',

    array(

    'column1' => 'value1',

    'column2' => 123

    ),

    array(

    '%s',

    '%d'

    )

    );

    ?>

    4、function update($table, $data, $where, $format = null, $where_format = null)

    這是更新記錄函數(shù),第一個(gè)參數(shù)是表的字段數(shù)組,第二個(gè)是數(shù)據(jù)數(shù)組,第三個(gè)是條件數(shù)組,第四個(gè)和第五個(gè)分別用于規(guī)定$data和$where中每個(gè)值的數(shù)據(jù)類型。更新了為1,否則為0。

    實(shí)例:

    <?php

    $wpdb->update(

    'table',

    array(

    'column1' => 'value1', // string

    'column2' => 'value2' // integer (number)

    ),

    array( 'ID' => 1 ),

    array(

    '%s', // value1

    '%d' // value2

    ),

    array( '%d' )

    );

    ?>

    5、function get_var($query = null, $x = 0, $y = 0)

    這個(gè)函數(shù)只返回一個(gè)值,默認(rèn)是第0行第0列。如果$query不為空,首先執(zhí)行查詢,如果$query為空的話,則表示從cache中選出;然后返回第X列第Y行的值。

    實(shí)例:

    <?php

    $user_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->users;" ) );

    echo "<p>User count is {$user_count}</p>";

    ?>

    6、function get_row($query = null, $output = OBJECT, $y = 0)

    返回一行,$output指定返回的類型,可以是ARRAY_A(關(guān)聯(lián)數(shù)組)、ARRAY_N(數(shù)字?jǐn)?shù)組)或者OBJECT(對(duì)象)。$y指定第幾行。

    實(shí)例:

    默認(rèn)情況下,$output的值為OBJECT,那么用法如下:

    <?php

    $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10");

    echo $mylink->link_id; // prints "10"

    ?>

    如果$output的值為ARRAY_A,那么用法如下:

    <?php

    $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10",ARRAY_A);

    echo $mylink['link_id']; // prints "10"

    ?>

    如果$output的值為ARRAY_N,那么用法如下:

    <?php

    $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10",ARRAY_N);

    echo $mylink[1]; // prints "10"

    ?>

    7、function get_col($query = null, $x = 0)

    返回一列,$x指定第幾列。

    實(shí)例:

    <?php

    $names = $wpdb->get_col("SELECT name, email FROM myusers", 0)

    foreach ( $names as $name ) {

    echo $name;

    }

    ?>

    8、function get_results($query = null, $output = OBJECT)

    返回查詢的結(jié)果集,允許以ARRAY_A、ARRAY_N或者OBJECT三種方式返回。

    實(shí)例:

    <?php

    $fivesdrafts = $wpdb->get_results(

    "

    SELECT ID, post_title

    FROM $wpdb->posts

    WHERE post_status = 'draft'

    AND post_author = 5

    "

    );

    foreach ( $fivesdrafts as $fivesdraft )

    {

    echo $fivesdraft->post_title;

    }

    ?>

    9、function get_col_info($info_type = 'name', $col_offset = -1)

    返回字段信息。

    實(shí)例:

    <?php

    $col_name = $wpdb->get_col_info('name', 0);

    echo $col_name;

    ?>

    10、function prepare($query = null)

    這是一個(gè)可變參數(shù)函數(shù),即函數(shù)的參數(shù)個(gè)數(shù)不確定。$query為SQL語(yǔ)句,其中可以包含像%s和%d這樣的占位符,其它所有非占位符里面的%都要使用%%來(lái)代替。由于SQL語(yǔ)句中可能含有像單引號(hào)、雙引號(hào)這樣的特殊字符,如果不進(jìn)行處理就直接提交給數(shù)據(jù)庫(kù),可能會(huì)導(dǎo)致錯(cuò)誤或者出現(xiàn)安全問(wèn)題。為此,我們可以通過(guò)prepare函數(shù)來(lái)對(duì)SQL語(yǔ)句進(jìn)行預(yù)處理。其實(shí)該函數(shù)的用法非常簡(jiǎn)單,就跟C語(yǔ)言中的sprintf()和vsprintf()函數(shù)差不多。

    用法:

    <?php $sql = $wpdb->prepare( 'query' [, value_parameter, value_parameter ...] ); ?>

    實(shí)例:

    <?php

    $metakey = "Harriet's Adages";

    $metavalue = "WordPress' database interface is like Sunday Morning: Easy.";

    $wpdb->query( $wpdb->prepare(

    "

    INSERT INTO $wpdb->postmeta

    ( post_id, meta_key, meta_value )

    VALUES ( %d, %s, %s )

    ",

    10,

    $metakey,

    $metavalue

    ) );

    ?>

    當(dāng)然,還有一些不常使用的函數(shù),這里就不詳細(xì)介紹了。另外還有兩個(gè)常量:SAVEQUERIES和WP_DEBUG。設(shè)置SAVEQUERIES常量為TRUE,可以把在數(shù)據(jù)庫(kù)里執(zhí)行的所有查詢及其停止時(shí)間保存到$this->queries這個(gè)數(shù)組中,以后調(diào)試的時(shí)候可以使用;而設(shè)置WP_DEBUG常量為TRUE,則可以輸出錯(cuò)誤。不過(guò),這兩個(gè)常量開關(guān)默認(rèn)都沒有打開,我們?cè)跍y(cè)試的時(shí)候,可以在wp_config.php文件中將其開啟。

    更多信息請(qǐng)查看IT技術(shù)專欄

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:WordPress數(shù)據(jù)庫(kù)操作函數(shù)詳解
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2025國(guó)考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)