php - 使用 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
)
);
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 时没有任何其他表格发布,但这当然仅用于用户输入。
解决方案
也许它没有识别表前缀。您还应该指定数据类型,例如字符串 (%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"
));
推荐阅读
- angular - 嵌套反应形式始终有效
- php - 如何将每个结果的更多细节添加到 solr facet?
- codeigniter - 如何在控制器的 $promise->then() 中加载 CodeIgniter 视图?
- c# - 找不到标准资产 | 统一2018.3.0f2
- kubernetes - Kubernetes 服务有时无响应
- java - 为什么我不能写 ch=ch+1; 而不是 ch++; 尽管它们具有相同的含义
- javascript - 在模拟/存根 Solidity 智能合约功能时使用 Javascript 进行测试
- c# - 如何从连接到 mvc 5 中 AspNetUsers 表的数据库表中获取数据
- javascript - 在浅渲染功能组件上调用 instance() 返回 null
- php - php strpos总是返回false,我想得到一个正确的答案