📜  wordpress 执行查询 - PHP (1)

📅  最后修改于: 2023-12-03 15:06:01.228000             🧑  作者: Mango

WordPress 执行查询 - PHP

WordPress 是一个非常流行的开源 CMS 系统,其使用 PHP 程序来为网站提供动态内容。如果你是一名 WordPress 开发者,你可能需要在你的插件或主题中执行一些数据库查询。本文将展示一些在 WordPress 中执行查询的方法并提供一些示例代码。

1. 使用 $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' ]
);
2. 使用 $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
    )
);
3. 查询自定义表格

如果你需要查询自定义表格,你需要用到 $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 查询的最佳实践,以确保查询的安全性和可维护性。