📅  最后修改于: 2023-12-03 15:06:01.228000             🧑  作者: Mango
WordPress 是一个非常流行的开源 CMS 系统,其使用 PHP 程序来为网站提供动态内容。如果你是一名 WordPress 开发者,你可能需要在你的插件或主题中执行一些数据库查询。本文将展示一些在 WordPress 中执行查询的方法并提供一些示例代码。
$wpdb
对象WordPress 提供了一个全局变量 $wpdb
用于与数据库进行交互。这个对象是一个 wpdb
类型对象,包含了执行查询和查询结果的方法。
// 示例1:使用 $wpdb 执行 SELECT 查询
$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}posts WHERE post_status = 'publish'" );
foreach ( $results as $post ) {
echo $post->post_title;
}
// 示例2:使用 $wpdb 执行 UPDATE 查询
$wpdb->update(
"{$wpdb->prefix}posts",
[ 'post_status' => 'draft' ],
[ 'ID' => 123 ],
[ '%s' ],
[ '%d' ]
);
// 示例3:使用 $wpdb 执行 INSERT 查询
$wpdb->insert(
"{$wpdb->prefix}posts",
[
'post_title' => 'My new post',
'post_status' => 'publish'
],
[ '%s', '%s' ]
);
// 示例4:使用 $wpdb 执行 DELETE 查询
$wpdb->delete(
"{$wpdb->prefix}posts",
[ 'ID' => 123 ],
[ '%d' ]
);
$wpdb->prepare()
防止 SQL 注入在执行查询时,我们需要确保输入的数据是安全的,以避免 SQL 注入攻击。为此,我们可以使用 $wpdb->prepare()
方法构建 SQL 语句。
$user_id = 123;
$results = $wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}users WHERE ID = %d",
$user_id
)
);
如果你需要查询自定义表格,你需要用到 $wpdb->prefix
前缀来获取表格名。
// 示例1:使用 $wpdb 查询自定义表格
$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}my_custom_table WHERE my_field = 'my_value'" );
// 示例2:使用 $wpdb 执行 INSERT 查询到自定义表格
$wpdb->insert(
"{$wpdb->prefix}my_custom_table",
[
'my_field_1' => 'value 1',
'my_field_2' => 'value 2'
],
[ '%s', '%s' ]
);
WordPress 提供了很多方法来执行 SQL 查询,使开发者能够更轻松地与数据库交互。但是要注意遵循 WordPress 查询的最佳实践,以确保查询的安全性和可维护性。