php - Wordpress wpdb->删除问题

标签 php wordpress

我正在尝试以编程方式从数据库中删除一条记录。当我像这样对其进行硬编码时,它确实会从数据库中删除一条记录:

$wpdb->delete( $table_name, array( 'user_id' => 1, 'timeMin' => 10), array('%d', '%d') );

但是,当我尝试使用变量以动态方式执行此操作时,它不起作用。我什至尝试将变量转换为 int 以确保它们是正确的类型。

$id = (int) wp_get_current_user()->ID;
$time = (int) $_POST['umjp_time'];

$wpdb->delete( $table_name, array( 'user_id' => $id, 'timeMin' => $time), array('%d','%d'));

为什么使用变量的动态代码不起作用,我该如何解决这个问题?

最佳答案

这是我推荐的做法:

function vendor_module_remove_dealer($data)
{
    global $wpdb;

    $sql = 'DELETE FROM `'. $wpdb->prefix .'my_table` WHERE `primary_id` = %d;';

    try {
        $wpdb->query($wpdb->prepare($sql, array($data['primary-id'])));

        return true;
    } catch (Exception $e) {
        return 'Error! '. $wpdb->last_error;
    }
}

这将防止 SQL 注入(inject)并安全地删除您的记录,如果失败,将返回错误消息:)

关于php - Wordpress wpdb->删除问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50370947/

相关文章:

WordPress 中的 jQuery 自动完成和特殊字符

javascript - jQuery scroll() 事件不会传播

php - 插入视频后div布局发生变化

php - 从sql View 中选择时如何修复laravel中的 "Prepared statement needs to be re-prepared"

php - 仅选择两个表中必须存在的数据并仅返回单行

时间戳为零的 PHP 日期返回 1 小时

php - WooCommerce 从产品标题中获取产品对象

json - Wordpress REST API 搜索产品

php - Nginx:在 Symfony2 应用程序的子文件夹中运行 wordpress

php - Codeigniter插入非英文字符问题