Не работает INSERT-запрос в форме

4 дек. 2014 г., 07:39:45
Просмотры: 35.2K
Голосов: 0

Многие задавали похожий вопрос, я читал эти материалы, но мой случай отличается.

Я пытаюсь вставить некоторые значения в базу данных из формы, но вставка не происходит.

У меня есть таблица в базе данных с 6 столбцами, и я хочу вставить значения только в 4 столбца.

Название таблицы: wp_contactus

6 Столбцов

  • id
  • firstname
  • lastname
  • email
  • query
  • reg_date

Это код для вставки только в 4 столбца

4 Столбца

  • firstname
  • secondname
  • email
  • query

    <div class="wrap">
        <form action="" method="post">
            FirstName <input type="text" name="firstNametxt" value="" /><br/>
            LastName   <input type="text" name="lastNametxt" value="" /><br/>
            email <input type="text" name="email" value="" /><br/>
            Query <input type="text" name="query" value="" /><br/>
            <input name="Submit" type="submit" value="Submit">
        </form>
        <form method="post">
            <?php   
            global $wpdb;
                    $firstName = $_POST["firstNametxt"];
                    $lastName = $_POST["lastNametxt"];
                    $email = $_POST["email"];
                    $query = $_POST["query"];
    
                    echo $firstName;
            $contactus_table = $wpdb->prefix."contactus";
    
            $sql = "INSERT INTO $contactus_table (id, firstname, lastname, email,                                               
    
              query, reg_date) VALUES ('2', $firstName, $lastName, $email, $query,
    
              CURRENT_TIMESTAMP);";                  
    
              $wpdb->query($sql)) 
    
       ?>
       </form>
       </div>
    
       <?php
            }
            add_shortcode( 'CONUS', 'contactus_shortcode' );
    
       ?>
10
Комментарии

Зачем вы отправляете ID? ID должен автоинкрементироваться в базе данных.

Mayeenul Islam Mayeenul Islam
4 дек. 2014 г. 07:59:24

Да, я не знаю, извините. Как тогда должен выглядеть код? Можете ли вы исправить его соответствующим образом..

lost_in_magento lost_in_magento
4 дек. 2014 г. 08:00:34

Как добавить строку с id и временной меткой, можете подсказать?

lost_in_magento lost_in_magento
4 дек. 2014 г. 08:16:23

@rajesh удалите первый элемент в VALUES (т.е. 2) и id, после $contactus_table

Mayeenul Islam Mayeenul Islam
4 дек. 2014 г. 08:43:40

@MayeenulIslam Большое спасибо за ответ!.. Вы проверили последний столбец, что с ним делать?

lost_in_magento lost_in_magento
4 дек. 2014 г. 08:45:56

Почему решение @RRikesh не работает для вашей проблемы?

Mayeenul Islam Mayeenul Islam
4 дек. 2014 г. 08:47:10

Я проверил, но не знаю, как это закодировать.. можешь помочь..!!

lost_in_magento lost_in_magento
4 дек. 2014 г. 08:49:04

Я уже пробовал это, братан... без толку

lost_in_magento lost_in_magento
4 дек. 2014 г. 09:27:47

$wpdb->insert( '$contactus_table', array( 'firstname' => '$firstName', 'lastname' => '$lastName', 'email' => '$email', 'query' => '$query' ), array( '%s', '%s', '%s', '%s' ) );

lost_in_magento lost_in_magento
4 дек. 2014 г. 09:28:10
Показать остальные 5 комментариев
Все ответы на вопрос 2
0

Я разобрался со своей ошибкой в запросе, спасибо всем, кто откликнулся. Вот исправленный фрагмент кода:

  <?php
  global $wpdb;
  $contactus_table = $wpdb->prefix."contactus";
        //была ошибка в запросе
        $sql = "INSERT INTO $contactus_table (firstname, lastname, email, query, reg_date) VALUES ('$firstName', '$lastName', '$email', '$query', CURRENT_TIMESTAMP)";

               if($wpdb->query($sql)) 
               {
               $BlogName = get_bloginfo();
               echo $BlogName;
               }
   ?>
5 дек. 2014 г. 07:26:20
2

Вам нужно сделать это самостоятельно. Это лишь каркас того, как это должно выглядеть минимум. Поищите больше информации и используйте данный формат. Следующее не проверено, так что теперь ваша очередь... :)

<form action="" method="post"  enctype="multipart/form-data">
  <label for="first-name-text">Имя: </label><input type="text" id="first-name-text" name="firstNametxt" value="" /><br/>
  <label for="last-name-text">Фамилия: </label><input type="text" id="last-name-text" name="lastNametxt" value="" /><br/>
  <label for="email">Email: </label><input type="text" id="email" name="email" value="" /><br/>
  <label for="query">Вопрос: </label><input type="text" id="query" name="query" value="" /><br/>
  <input name="Submit" type="submit" value="Отправить">
</form>
<?php
if( isset($_POST['submit']) ) {

  //получаем отправленные значения из формы
  $firstName = $_POST["firstNametxt"];
  $lastName = $_POST["lastNametxt"];
  $email = $_POST["email"];
  $query = $_POST["query"];

  //работаем с базой данных в WordPress стиле
  global $wpdb;
  $contactus_table = $wpdb->prefix."contactus";
  $wpdb->insert( 
    $contactus_table, 
    array( 
        'firstname' => $firstName, 
        'lastname'  => $lastName,
        'email'     => $email,
        'query'     => $query,
        'reg_date'  => current_time( 'mysql' ) // http://codex.wordpress.org/Function_Reference/current_time
    ), 
    array( 
      '%s', //тип данных - строка
      '%s',
      '%s',
      '%s',
      '%s' 
    ) 
  );
}
?>
4 дек. 2014 г. 09:33:31
Комментарии

Не добавляется, брат.. :(

lost_in_magento lost_in_magento
4 дек. 2014 г. 09:46:37

http://i59.tinypic.com/315iexu.jpg Нажми на эту ссылку, брат, вот структура базы данных

lost_in_magento lost_in_magento
4 дек. 2014 г. 09:55:45