如何使用$wpdb在自定义表中删除

时间:2017-01-11 作者:Alex Green

在使用$wpdb函数时,我很难找到一个好的资源。

我正在尝试从名为:eLearning\\u progress的自定义表中删除一行

$removefromdb = $wpdb->query("DELETE FROM eLearning_progress WHERE ID = \'$user_id\' AND module_id = \'$singlecomparearrays_remove\'" );
我要删除的行的ID为“$user\\u ID”,而“module\\u ID”为“$singlecomparearlays\\u remove”。

我也尝试过:

$removefromdb = $wpdb->query( "DELETE FROM eLearning_progress WHERE ID = ($user_id) AND module_id = ($singlecomparearrays_remove)" );
然后:

$removefromdb = $wpdb->query($wpdb->prepare("DELETE FROM eLearning_progress WHERE ID = %s AND module_id = %s", $user_id, $singlecomparearrays_remove));
请不要对我的尝试大声叹息,但我也找不到一个关于使用DELETE命令和变量的好指南。非常感谢您的帮助。

你好,亚历克斯

4 个回复
最合适的回答,由SO网友:bueltge 整理而成

实现此目标的最佳WP API解决方案是使用delete() 函数删除行。

一个小示例,删除自定义表“eLearning\\u progress”中的原始“ID”

    $id = 0815;
    $table = \'eLearning_progress\';
    $wpdb->delete( $table, array( \'id\' => $id ) );
但我看不出您将在表中删除哪个原始数据eLearning_progress? 也许你可以强化这个问题,以便更好地理解它。

SO网友:Adi Prasetyo

您的sql仍有可能在使用时产生问题$wpdb->delete我发现使用以下方法之一很有用:

呼叫$wpdb->show_errors(); before 查询enable 调试模式define( \'WP_DEBUG\', true );在您的wp-config.php

SO网友:user216942

使用此选项可以轻松删除

$MailMetaKey = yourkey
$post_id = yourpostid

$wpdb->query($wpdb->prepare("DELETE * FROM f0_postmeta WHERE meta_key = $MailMetaKey\' and post_id = \'$post_id\' "));

SO网友:Qureshi Taha

$wpdb->query($wpdb->prepare("DELETE FROM f0_postmeta WHERE meta_key = \'_lottery_closed\' and post_id = \'$prdid\'"));
这对我来说很好

相关推荐

在WordPress中将MySQL表格元素显示为页面

我正试图建立一个WordPress网站,但我需要一个特定的功能,我还没有找到一个插件。我将要刮网站信息和张贴到数据库的信息(这已经处理)。但是,我想创建一个页面来显示所有信息的索引,然后创建一个唯一的页面来显示每个单独的元素(ddbb表的行)。有什么办法可以做到这一点吗??