wordpress 对数据库的操作 $wpdb

$wpdb 是 wordpress 中的一个全局变量,在wordpress可以随时使用。下面就总结一下 $wpdb 的使用方法。

1. prepare 防止sql注入

  1. %s (string)
  2. %d(integer)
  3. %f(float)
$metakey   = 'Funny Phrases';
$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
   )
) 

2 .获取一个变量的结果

// $wpdb->get_var( 'query', column_offset, row_offset );

$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
echo "<p>User count is {$user_count}</p>";

3. 获得一行的结果

//  $wpdb->get_row('query', output_type, row_offset); 
	
$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10" )

4. 获取一列的结果

// get_col( 'query', column_offset );

5. 获取正常的结果,可循环输出多个结果

// get_results( 'query', output_type );

6. 插入数据

// insert( $table, $data, $format );
$wpdb->insert( 
    'table', 
    array( 
        'column1' => 'value1', 
        'column2' => 123, 
    ), 
    array( 
        '%s', 
        '%d', 
    ) 
);

7. 替换数据, $data 中第一个是 row id

// replace( $table, $data, $format );
$wpdb->replace( 
    'table', 
    array( 
        'indexed_id' => 1,
        'column1' => 'value1', 
        'column2' => 123, 
    ), 
    array( 
                '%d',
        '%s', 
        '%d', 
    ) 
);

8. 更新数据

// update( $table, $data, $where, $format = null, $where_format = null );

$wpdb->update( 
    'table', 
    array( 
        'column1' => 'value1',   // string
        'column2' => 'value2'    // integer (number) 
    ), 
    array( 'ID' => 1 ), 
    array( 
        '%s',   // value1
        '%d'    // value2
    ), 
    array( '%d' ) 
);

9. 删除数据

// delete( $table, $where, $where_format = null );

10 . query 执行原生sql

$wpdb->query( 
    $wpdb->prepare( 
        "   DELETE FROM $wpdb->postmeta
            WHERE post_id = %d
            AND meta_key = %s
        ",
            13, 'gargle'
        )
);

11. 错误的显示、隐藏和打印

// $wpdb->show_errors();
// $wpdb->show_errors();
// $wpdb->print_error();

wordpress $wpdb 地址 https://developer.wordpress.org/reference/classes/wpdb/