最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

php - cant insert data in a custom table in phpmyadmin

programmeradmin1浏览0评论

i created a dbdelta table but i cant seem to insert any data here is my code please help

function lapizzeria_save_reservation() {
  global $wpdb;
  if(isset($_POST['reservation']) && $_POST['hidden'] =="1")  {
    $name =$_POST['name'];
    $date =$_POST['date'];
    $email =$_POST['email'];
    $phone =$_POST['phone'];
    $message =$_POST['message'];

    $table = $wpdb->prefix . 'reservations';

    $data = array(
      'name' => $name,
      'date' => $date,
      'email' => $email,
      'phone' => $phone,
      'message' => $message
    );

    $format = array(
      '%s',
      '%s',
      '%s',
      '%s',
      '%s'
    );
    $wpdb->insert($table, $data, $format);

  }
}

add_action('init', 'lapizzeria_save_reservation');

here is the html

<form class="reservation-form" method="post">
                <h2>Make a Reservation</h2>
                <div class="field">
                  <input type="text" name="name" placeholder="Name" required>
                </div>
                <div class="field">
                  <input type="datetime-local" name="date" placeholder="Date" required>
                </div>
                <div class="field">
                  <input type="text" name="email" placeholder="E-mail">
                </div>
                <div class="field">
                  <input type="tel" name="phone" placeholder="Phone Number" required>
                </div>
                <div class="field">
                  <textarea name="message" placeholder="Message" requires></textarea>
                </div>
                <input type="submit" name="reservation" class="button" value="Send">
                <input type="hidden" name="hidden" value="1">
            </form>

i created a dbdelta table but i cant seem to insert any data here is my code please help

function lapizzeria_save_reservation() {
  global $wpdb;
  if(isset($_POST['reservation']) && $_POST['hidden'] =="1")  {
    $name =$_POST['name'];
    $date =$_POST['date'];
    $email =$_POST['email'];
    $phone =$_POST['phone'];
    $message =$_POST['message'];

    $table = $wpdb->prefix . 'reservations';

    $data = array(
      'name' => $name,
      'date' => $date,
      'email' => $email,
      'phone' => $phone,
      'message' => $message
    );

    $format = array(
      '%s',
      '%s',
      '%s',
      '%s',
      '%s'
    );
    $wpdb->insert($table, $data, $format);

  }
}

add_action('init', 'lapizzeria_save_reservation');

here is the html

<form class="reservation-form" method="post">
                <h2>Make a Reservation</h2>
                <div class="field">
                  <input type="text" name="name" placeholder="Name" required>
                </div>
                <div class="field">
                  <input type="datetime-local" name="date" placeholder="Date" required>
                </div>
                <div class="field">
                  <input type="text" name="email" placeholder="E-mail">
                </div>
                <div class="field">
                  <input type="tel" name="phone" placeholder="Phone Number" required>
                </div>
                <div class="field">
                  <textarea name="message" placeholder="Message" requires></textarea>
                </div>
                <input type="submit" name="reservation" class="button" value="Send">
                <input type="hidden" name="hidden" value="1">
            </form>
Share Improve this question edited Jan 6, 2020 at 8:18 Arvin Bahilango asked Dec 29, 2019 at 10:07 Arvin BahilangoArvin Bahilango 33 bronze badges 2
  • 1 I'm not sure init is the best place to process posts - maybe admin_post? Or a form plugin might be a better starting point and hook form submission there. What's going wrong: is this code never executing, or are you getting SQL errors, or something else? – Rup Commented Dec 29, 2019 at 12:43
  • the code is not executing, i think init is not working, can you help me please, thank you – Arvin Bahilango Commented Jan 6, 2020 at 8:14
Add a comment  | 

2 Answers 2

Reset to default 1
    <?php 
    function lapizzeria_save_reservation() {
    if(isset($_POST['reservation']) && $_POST['hidden'] =="1")  {
    global $wpdb;
        $sql = $wpdb->prepare("INSERT INTO reservation (name, date, email, phone, message)
        VALUES ('".$_POST["name"]."','".$_POST["date"]."','".$_POST["email"]."','".$_POST["phone"]."','".$_POST["message"]."')");
        $wpdb->query($sql);
        $name =$_POST['name'];
        $date =$_POST['date'];
        $email =$_POST['email'];
        $phone =$_POST['phone'];
        $message =$_POST['message'];
    function insertuser( $name, $date, $email, $phone, $message){
        global $wpdb;
        $wpdb = $wpdb->prefix . 'reservations';
    $name = $_POST['name'];
        $date = $_POST['date'];
        $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
        $format = array('%s','%s','%s','%s','%s');
        $success = $wpdb->insert($reservations, array('name' => $name, 'date' => $date, 'email'=> $email, 'phone'=>$phone, 'message'=>$message ));
    }
    if($success) {
            echo 'Inserted successfully';
        } else {
            echo 'not';
        }
        }

    add_action('init', 'lapizzeria_save_reservation');
    ?>

I would strongly suggest using AJAX for this purpose.

Using "init" for inserting some data to your database is not a good solution.

Here's a good guide on how to do it with AJAX: https://webprogramo/how-to-create-an-ajax-form-in-wordpress/1156/

发布评论

评论列表(0)

  1. 暂无评论