$wpdb 是 wordpress 中的一个全局变量,在wordpress可以随时使用。下面就总结一下 $wpdb 的使用方法。
1. prepare 防止sql注入
- %s (string)
- %d(integer)
- %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();