dongyou6768 2018-05-16 12:27
浏览 199
已采纳

Wordpress wpdb->删除问题

I'm trying to delete a record from the database programmatically. When I have it hardcoded like this it does delete a record from the database:

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

However, when I try to do it in a dynamic manner with variables, it doesn't work. I even tried casting the variables to int to make sure they are they right type.

$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'));

Why doesn't the dynamic code using variables work and how do I fix this?

  • 写回答

3条回答 默认 最新

  • douh9817 2018-05-16 13:18
    关注

    this is how I would recommend doing it:

    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;
        }
    }
    

    this will prevent SQL Injection and delete your record safely, if it fails an error msg will be returned :)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题