2014-10-27 3 views
0

Я пытаюсь вставить данные в базу данных Wordpress, создав таблицу. Я создал таблицу, но когда я пытаюсь вставить данные из формы, она не вставляет данные. Я проверил, что соединение с базой данных работает, но вставка не происходит. Может ли кто-нибудь помочь мне в этом? Вот мой код: -Вставьте данные в таблицу базы данных Wordpress из пользовательской формы

<?php 
    require_once('/wp-config.php'); 
    global $wpdb; 

    if(isset($_POST['submit'])){ 
     $wpdb->insert('wp_post_job', 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')); 
    } 
?> 

<?php 
/* 
Template Name: Form 
*/ 
?> 
<?php global $pc_theme_object; /* Reference theme framework class */ ?> 
<?php get_header(); ?> 

<form action="" id="postjob" method="post"> 
    <table> 
     <tr> 
      <td><label for="organizationname">Organization Name:</label></td> 
      <td><input type="text" name="organizationname" id="organizationname" value="/></td> 
     </tr> 
     <tr> 
      <td><label for="post">Post:</label></td> 
      <td><input type="text" name="post" id="post" value="" /></td> 
     </tr> 
     <tr> 
      <td><label for="publishfrom">Publish From:</label></td> 
      <td><input type="text" name="publishfrom" id="publishfrom" /></td> 
     </tr> 
     <tr> 
      <td><label for="publishupto">Publish Upto:</label></td> 
      <td><input type="text" name="publishupto" id="publishupto" /></td> 
     </tr> 
     <tr> 
      <td><label for="qualification">Qualification:</label></td> 
      <td><input type="text" name="qualification1" id="qualification1" /></td> 
      <td><input type="text" name="qualification2" id="qualification2" /></td> 
      <td><input type="text" name="qualification3" id="qualification3" /></td> 
      <td><input type="text" name="qualification4" id="qualification4" /></td> 
     </tr> 
     <tr> 
      <td><label for="experience">Experience:</label></td> 
      <td><input type="text" name="experience1" id="experience1"/></td> 
      <td><input type="text" name="experience2" id="experience2"/></td> 
      <td><input type="text" name="experience3" id="experience3"/></td> 
     </tr> 
     <tr> 
      <td><label for="training">Training:</label></td> 
      <td><input type="text" name="training1" id="training1" />></td> 
      <td><input type="text" name="training2" id="training2" /></td> 
      <td><input type="text" name="training3" id="training3" /></td> 
      <td><input type="text" name="training4" id="training4" /></td> 
      <td><input type="text" name="training5" id="training5" /></td> 
     </tr> 
     <tr> 
      <td><button type="submit" name="submit">Submit</button></td> 
     </tr> 
    </table> 
</form> 

<?php get_footer(); ?> 

ответ

5

Заменить '$ с' с '% S'

Используйте этот

if (isset($_POST['submit'])){ 
    $wpdb->insert('wp_post_job', 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') 
    ); 
} 
+0

Он работал. Благодарю. – Nikx

+0

Wordpress codex говорит о аргументе формата «Если опущено, все значения в' $ data' будут рассматриваться как строки, если не указано иначе в 'wpdb :: $ field_types'. Похоже, в этом случае было бы разумным. https://codex.wordpress.org/Class_Reference/wpdb#INSERT_row –

7

Вы можете использовать этот

<?php 

if (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); 
} 

?> 
+0

Рад, что вы получили код. Я ничего не вижу, чтобы продезинфицировать ваш вклад. Учитывая, что вы используете переменные $ _POST для прямого представления, дезинфекция - это то, что вы, возможно, пожелаете рассмотреть, в противном случае риск безопасности довольно высок. –

Смежные вопросы