Insert data into Wordpress database table from a custom form Insert data into Wordpress database table from a custom form wordpress wordpress

Insert data into Wordpress database table from a custom form


Replace '$s' with '%s'

Use This Code

if ( isset( $_POST['submit'] ) ){         global $wpdb;         $tablename = $wpdb->prefix.'post_job';        $wpdb->insert( $tablename, array(            'organizationname' => $_POST['organizationname'],             'post' => $_POST['post'],            'publishfrom' => $_POST['publishfrom'],             'publishupto' => $_POST['publishupto'],            'qualification1' => $_POST['qualification1'],             'qualification2' => $_POST['qualification2'],             'qualification3' => $_POST['qualification3'],            'qualification4' => $_POST['qualification4'],             'experience1' => $_POST['experience1'],             'experience2' => $_POST['experience2'],            'experience3' => $_POST['experience3'],             'training1' => $_POST['training1'],             'training2' => $_POST['training2'],             'training3' => $_POST['training3'],            'training4' => $_POST['training4'],             'training5' => $_POST['training5'] ),            array( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )         );    }


You can use this

<?phpif ( isset( $_POST['submit'] ) ){    global $wpdb;    $tablename=$wpdb->prefix.'post_job';    $data=array(        'organizationname' => $_POST['organizationname'],         'post' => $_POST['post'],        'publishfrom' => $_POST['publishfrom'],         'publishupto' => $_POST['publishupto'],        'qualification1' => $_POST['qualification1'],         'qualification2' => $_POST['qualification2'],         'qualification3' => $_POST['qualification3'],        'qualification4' => $_POST['qualification4'],         'experience1' => $_POST['experience1'],         'experience2' => $_POST['experience2'],        'experience3' => $_POST['experience3'],         'training1' => $_POST['training1'],         'training2' => $_POST['training2'],         'training3' => $_POST['training3'],        'training4' => $_POST['training4'],         'training5' => $_POST['training5'] );     $wpdb->insert( $tablename, $data);}?>


Everyone has given the right answer. But there's something more. If you want more security, then better to use WordPress pdo for better protection against SQL attacks.

global $wpdb;$table_name = $wpdb->prefix."table_name_after_the_prefix";$sql = $wpdb->prepare( "INSERT INTO ".$table_name." (name, email, contact ) VALUES ( %s, %s, %d )", $name, $email, $contact );$wpdb->query($sql);// get the inserted record id.$id = $wpdb->insert_id;

REFERENCES

https://developer.wordpress.org/reference/classes/wpdb/#protect-queries-against-sql-injection-attacks