我必须在这里丢失任何东西,什么都没有发送到数据库。我只是试图将此信息发送到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
)
);
if($success) {
echo ' Inserted successfully';
} else {
echo 'not';
}
if($success2) {
echo ' Inserted successfully2';
} else {
echo 'not2';
}
}
两个语句都以未发布的形式返回,并且数据库中没有任何内容。
编辑:我尝试过define('WP-DEBUG',true);和$ wpdb-> print_error();没有错误,我检查了其他表单,除了我使用wp_insert_user时,其他表单都没有发布,但这当然仅用于用户输入。
答案 0 :(得分:1)
可能无法识别表前缀。您还应该指定数据类型,例如字符串(%s)或整数(%d)。尝试这样的事情:
global $wpdb;
$table_name = $wpdb->prefix . 'sodae_enrolled';
$wpdb->insert($table_name, array(
"student_name" => $_POST['student_name'],
"student_id" => $_POST['student_id'],
"class_of" => $class,
"assignment_name" => $assign,
"grade" => $_POST['grade']
), array(
"%s",
"%s",
"%s",
"%s",
"%s"
));
答案 1 :(得分:0)
因此,通过使用$ wpdb-> last_error,我能够修复一些链接到数据库中字段的错误并修复了一些拼写错误。有了错误指南,即可轻松修复。