使用 PHP 将一个简单的表单发布到 2 个表

我一定在这里遗漏了什么,没有任何东西被发送到数据库。我只是想将此信息发送到 2 个表。更新一个并将新行插入另一个。


我已经测试了数据及其正在收集的数据,并测试了仅发送到 1 个表但仍然没有发送任何信息。


形式:


  <div class="container"><center>

    <form action ="<?php echo $_SERVER['REQUEST_URI']; ?>" method ="post">

    <table class="form-table" id='student'>

    <tbody>

    <tr>

    <th>Class</th>

    <th>Assignment Id</th>

    <th>Student Name</th>

    <th>Grade</th>

    </tr>

    <?php foreach($students as $row){ ?>

    <tr>

    <input type="hidden" name="student_name" size="30" value="<?php echo "$row->student_name" ?>">

    <input type="hidden" name="student_id" size="30" value="<?php echo "$row->student_id" ?>">

    <td><Center><?php echo "$class"; ?></Center></td>

    <td><Center><?php echo "$assign"; ?></Center></td>

    <td><Center><?php echo "$row->student_name"; ?></Center></td>

    <td><Center><input type="text" name="grade" size="15" placeholder="Points"></Center></td>

    </tr>

    <?php } ?>

  </tbody>

    </table>

    <p class="submit"><Center><input type="submit" name="submitgrade" id="submitgrade" class="button button-primary" value="Submit" /></center></p>  </form>

  </center></div>

MYSQL 查询:


  if ($_POST['submitgrade']){

    global $wpdb;

    $success = $wpdb->insert(

             'sodae_grades',

             array(

             "student_name" => $_POST['student_name'],

         "student_id" => $_POST['student_id'],

         "class_of" => $class,

             "assignment_name" => $assign,

             "grade" => $_POST['grade']

       )

     );


       $success2 = $wpdb->update(

           'sodae_enrolled',

           array(

           "grade" => $_POST['grade']

          ),

          array(

            "student_id" => $_POST['grade'] + $count

          )

        );



这两个语句都返回未发布,并且数据库中没有任何内容。


编辑:我试过定义('WP-DEBUG', true); 和 $wpdb->print_error(); 没有错误,我检查了其他表格,除了我使用 wp_insert_user 之外,没有任何表格发布,但这当然仅适用于用户输入。


守着星空守着你
浏览 144回答 2
2回答

呼唤远方

也许它没有识别表前缀。您还应该指定数据类型,如字符串 (%s) 或整数 (%d)。尝试这样的事情:&nbsp; &nbsp; global $wpdb;&nbsp; &nbsp; $table_name = $wpdb->prefix . 'sodae_enrolled';&nbsp; &nbsp; $wpdb->insert($table_name, array(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"student_name" => $_POST['student_name'],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"student_id" => $_POST['student_id'],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"class_of" => $class,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"assignment_name" => $assign,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"grade" => $_POST['grade']&nbsp; &nbsp; ), array(&nbsp; &nbsp; &nbsp; &nbsp; "%s",&nbsp; &nbsp; &nbsp; &nbsp; "%s",&nbsp; &nbsp; &nbsp; &nbsp; "%s",&nbsp; &nbsp; &nbsp; &nbsp; "%s",&nbsp; &nbsp; &nbsp; &nbsp; "%s"&nbsp; &nbsp; ));

红糖糍粑

因此,通过使用 $wpdb->last_error 我能够修复一些链接到数据库中的字段的错误并修复一些拼写错误。一旦我有了错误指南,就可以轻松修复。
打开App,查看更多内容
随时随地看视频慕课网APP