国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

wordpress中直接使用sql查詢方法介紹

2024-09-07 00:50:23
字體:
來源:轉載
供稿:網友

一般情況下我們是不需要在wordpress模板中調用sql語句了,但我有一些很不一樣的要求需要自己執行sql查詢得出結果了,下面我來介紹在wordpress中直接使用sql查詢.

首先我要使用這個類下面的一些方法,不能直接調用,WordPress提供了這個類的全局變量叫$wpdb,通過這個全局變量來與WordPress數據庫進行關聯,所以我們在使用之前,需要先定義下這個全局變量,寫法是:<?php  global $wpdb;  ?> 

執行數據庫查詢:通過query函數在WordPress數據庫中執行任何SQL查詢,推薦使用SELECT查詢,代碼如下:<?php $wpdb->query('query'); ?>  

刪除ID為13的文章,代碼如下:

$wpdb->query("DELETE FROM $wpdb->posts WHERE post_id = '13' ");  

選擇一個變量:get_var函數返回一個來自數據庫的變量,雖然只返回一個變量,如果沒有查詢結果,返回NULL,代碼如下:

<?php $wpdb->get_var('query',column_offset,row_offset); ?>  

query

(字符串)你希望執行的查詢,將該參數設為null會使函數返回上一個查詢緩存結果中的具體變量.

column_offset

(整數)預計的數據庫表的列數(0為表中第一列),默認值為0。

row_offset

(整數)預計的數據庫表的行數(0為表中第一行),默認值為0。

示例:檢索并返回用戶數量,代碼如下:

  1. <?php   
  2.       $user_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->users;"));   
  3.       echo '<p>用戶一共有 ' . $user_count . '人</p>';     
  4.  ?> 

選擇表行:可使用get_row函數,該函數可將行作為對象、關聯數組或數值索引數組返回,如果查詢返回了多個行,函數只返回第一行.

代碼如下:<?php $wpdb->get_row('query', output_type, row_offset); ?> 

query

(字符串)你希望執行的查詢語句。

output_type

三個預定義的常量之一。默認值為OBJECT。OBJECT —— 返回的結果以對象形式輸出,ARRAY_A ——返回的結果以關聯數組形式輸出,ARRAY_N —— 返回的結果以數值索引數組形式輸出

row_offset

(整數)預計的數據庫表的行數(0為表中第一行),默認值為0.

示例:獲取ID為10的鏈接的所有信息,代碼如下:

  1. <?php      
  2.      $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10");      
  3.      //$mylink對象的屬性即SQL查詢結果的行名稱(即$wpdb->links表中的所有行)。     
  4.      echo $mylink->link_id; // prints "10"      
  5.      //使用ARRAY_A     
  6.      $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A);      
  7.      //則會生成一個關聯數組:     
  8.      echo $mylink['link_id']; // prints "10"      
  9.      //使用ARRAY_N     
  10.      $mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N);      
  11.      //則會生成一個數值索引數組:     
  12.      echo $mylink[1]; // prints "10"      
  13.     ?> 

選擇表列:要選擇數據庫表中的一列內容,可使用get_col函數,該函數輸出一個空間數組,如果查詢返回了多個列,代碼如下:

<?php $wpdb->get_col('query',column_offset); ?>  

query

(字符串)你希望執行的查詢,將該參數設為null會使函數返回上一個查詢的緩存結果中的執行表列.

column_offset

(整數)預計的數據庫表的列數(0為表中第一列),默認值為0.

示例:返回指定文章類型的ID號,代碼如下:

  1. <?php     
  2.      $resaults = $wpdb->get_col("SELECT * FROM $wpdb->posts WHERE post_type = 'question'");         
  3.      print_r($resaults);     
  4.     ?> 

選擇生成的結果:get_results可以從數據庫中抽取函數生成的多行結果。wpdb函數以數組形式返回整個查詢結果,代碼如下:

<?php $wpdb->get_results('query', output_type); ?>  

query

(字符串)你希望執行的查詢語句,將該參數設為null會使函數返回上一個查詢的緩存結果中的信息.

output_type

三個預定義的常量之一,默認值為OBJECT。更多信息請見上文中的“選擇表行”,OBJECT —— 以對象形式輸出返回的結果,ARRAY_A ——以關聯數組形式輸出返回的結果,ARRAY_N —— 以數值索引數組形式輸出返回的結果

示例:返回指定文章類型的所有文章內容,代碼如下:

  1. <?php    
  2.          $resaults = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'question'");   
  3.          print_r($resaults);    
  4. ?> 

以上部分便是WordPress數據庫接口的查詢部分,通過上面提供的方法我們可以使用SQL語句來對數據庫內容進行查詢和獲取內容,不過需要大家對SQL這方面熟悉.

wordpress中常用sql語句

開啟所有評論,代碼如下:

  1. UPDATE wp_posts 
  2. SET comment_status = ‘open’ 
  3. WHERE post_status = ‘publish’; 

關閉舊文章的留言,代碼如下:

  1. UPDATE wp_posts 
  2. SET comment_status = ‘closed’ 
  3. WHERE post_date < '2009-01-01' AND post_status = 'publish' 

刪除所有的垃圾評論,代碼如下:

  1. DELETE FROM wp_comments 
  2. WHERE comment_approved = ‘spam’ 

刪除所有文章修訂版本(Revisions)以及它們的Meta數據,代碼如下:

  1. DELETE a,b,c 
  2. FROM wp_posts a 
  3. LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) 
  4. LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) 
  5. WHERE a.post_type = ‘revision’ 

清理wp_postmeta表,代碼如下:

  1. DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_old_slug’; 
  2. DELETE FROM wp_postmeta WHERE meta_key = ‘_revision-control’; 
  3. DELETE FROM wp_postmeta WHERE meta_value = ‘{{unknown}}’; 

寫成shell腳本,添加表優化,可以使用crontab定時調用處理.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁城县| 海宁市| 延长县| 黎川县| 阳新县| 东方市| 汝城县| 楚雄市| 锡林浩特市| 进贤县| 获嘉县| 阳新县| 略阳县| 象州县| 淮北市| 和静县| 广州市| 高碑店市| 英超| 五大连池市| 石城县| 清流县| 全椒县| 财经| 南康市| 甘肃省| 千阳县| 哈密市| 小金县| 开远市| 彭泽县| 安平县| 临朐县| 车致| 康定县| 阿拉尔市| 河南省| 资溪县| 石城县| 邢台市| 通州市|