skip to Main Content

I am using a MySQL query from inside a WordPress custom plugin. I am submitting two values when posting. I want to update the time column if the user exists in the database.

Here is my code

function main()
{
  if (isset($_REQUEST)) {

    global $wpdb;
    $taskTime = $_REQUEST["task_current_time"];
    $taskTitle = $_REQUEST["task_current_title"];

    $select_all_current = $wpdb->prepare("SELECT * FROM $this->tablenamev2 WHERE task_current_title = '$taskTitle'");

    if ($wpdb->get_results($select_all_current)) {

      var_dump("USER EXIST");

      $wpdb->prepare("UPDATE $this->tablenamev2 SET task_current_time = '$taskTime' WHERE task_current_title = '$taskTitle'");

      return;
    } else {

      var_dump("USER DOES NOT EXIT!!!");

      $wpdb->query("INSERT INTO $this->tablenamev2 (task_current_time, task_current_title) VALUES ('$taskTime', '$taskTitle')");

      die();
    }
  }
}

2

Answers


  1. Chosen as BEST ANSWER

    The mistake was in $select_all_current = $wpdb->prepare() and instead I replaced it with $wpdb->query();

    Thank you for ur help!


  2. I have modified your code for update and insert(hope it helps)….

    
    function main()
    {
      if (isset($_REQUEST)) {
    
        global $wpdb;
    $table_px = $this->tablenamev2;
    // Hope tablenamev2 is the table name.....
    
        $taskTime = $_REQUEST["task_current_time"];
        $taskTitle = $_REQUEST["task_current_title"];
    
        $select_all_current = $wpdb->prepare("SELECT * FROM $this->tablenamev2 WHERE task_current_title = '$taskTitle'");
    
        if ($wpdb->get_results($select_all_current)) {
    
          var_dump("USER EXIST");
    
          $wpdb->query( $wpdb->prepare( "
            UPDATE `%s` SET  `task_current_time` = %s WHERE `task_current_title` = %s )",
           $table_px, $taskTime, $taskTitle
        ) );  
    
          return;
        } else {
    
          var_dump("USER DOES NOT EXIT!!!");
    
    $data = array('task_current_time' => $taskTime, 'task_current_title' => $taskTitle);
    $format = array('%s','%s');
    $wpdb->insert($table_px,$data,$format);
    
    
          die();
        }
    

    Let me know if it working..

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search