php - WordPress 使用表单更新数据库

标签 php mysql wordpress

我编写了这个快速脚本,它在移动单词新闻博客的位置时更新数据库。问题: 如果它显示已更新了多少行,那就太好了。这可能吗?

 <?php
if(isset($_GET['confirm'])){

    // Load Wordpress
    require_once('wp-load.php');

    // Form variables
    $site_was = $_GET['site_was'];
    $site_now = $_GET['site_now'];

    $db_queries = array(
        "UPDATE wp_options SET option_value = replace(option_value, '".$site_was."', '".$site_now."') WHERE option_name = 'home' OR option_name = 'siteurl'",
        "UPDATE wp_posts SET guid = REPLACE (guid, '".$site_was."', '".$site_now."')",
        "UPDATE wp_posts SET post_content = REPLACE (post_content, '".$site_was."', '".$site_now."')",
        "UPDATE wp_posts SET post_content = REPLACE (post_content, 'src=\"".$site_was."', 'src=\"".$site_now."')",
        "UPDATE wp_posts SET  guid = REPLACE (guid, '".$site_was."', '".$site_now."') WHERE post_type = 'attachment'",
        "UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, '".$site_was."','".$site_now."')"
    );

    foreach ($db_queries as $sql) {
        $wpdb->query($sql);
    }

} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
    <p>E.g http://examples.com or http://www.example.com/shop</p>
    <label>
        Site was:
        <input type="text" name="site_was" value="<?php if(isset($_GET['site_was'])) echo $_GET['site_was']?>" size="50" />
    </label>
    <br />
    <label>
        Site now:
        <input type="text" name="site_now" value="<?php if(isset($_GET['site_now'])) echo $_GET['site_now']?>" size="50" />
    </label>

    <input type="submit" name="confirm" value="Update Datebase" />
</form>
<?php } ?>

最佳答案

您应该使用相关的表行和数据调用 $wpdb->update()。这将返回受影响的行数。

例如

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

请参见此处:http://codex.wordpress.org/Class_Reference/wpdb#UPDATE_rows

关于php - WordPress 使用表单更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796323/

相关文章:

php - 如何在 WordPress 模板中插入第二个菜单?

php - 长轮询/HTTP流一般问题

php - 将 HTML 插入数据库

php - 如何在html复选框中加载mysql数据

javascript - 在 WordPress 插件中导入 Node 模块

php - 更好的性能 - MySQL 临时表或直接读取 CSV 文件或其他什么?

php - Zend_Db_Select 如何从子查询中选择(派生表)

java - 什么是默认的 JDBC 字符编码

javascript - 我需要更改此 Wordpress 幻灯片插件的分页以显示为数字而不是图像

php - 在 woocommerce 3 中获取订单项的元数据