php - 有没有办法检查数据是否存在然后插入数据?代码点火器
问题描述
我需要知道当数据存在于表中时如何插入数据。另一方面,如果数据不存在,则不会插入。有没有办法做到这一点?
我的观点
<?php echo form_open('students/find_class ') ?>
<input type="hidden" value="1" name="studId" />
<div class="form-group">
<h5>Class Code:</h5>
<small><li>Only teachers shall give you code</li></small><br>
<input type="text" class="form-control col-md-6" placeholder="Enter class code to join" name="code" required />
</div>
<hr>
<button type="submit" class="btn btn-info btn-md">Join Class</button>
</form>
我的控制器将通过模型连接
public function find_class(){
$this->student_model->find_class();
redirect('students/home');
}
最后,我的模型
public function find_class(){
$data = array(
'student_id' => $this->user_id,
'code' => $this->input->post('code')
);
return $this->db->insert('classes', $data);
}
解决方案
只有这个sql代码:
INSERT INTO table (value1, value2, value3)
SELECT * FROM (SELECT value1_content, value2_content, value3_content) AS tmp
WHERE NOT EXISTS (
SELECT value1 FROM table WHERE value1 = value1_content
) LIMIT 1;
推荐阅读
- c# - Asp.net Core Url.Action() 没有命中我的控制器方法
- java - 就“n”而言,以下代码的时间复杂度是多少?
- html - 溢出-y 不在内容容器中滚动
- r - R中带有情节的“轮廓”类型中使用的平滑方法是什么?
- excel - RefreshAll 宏在数据完成刷新之前保存/关闭。清零数据
- ansible - 如何在剧本中使用 ansible tower 登录凭据?
- scala - 在 RDD 上计算之前为每个 Spark 执行器指定初始化
- google-bigquery - BigQuery 通配符表 - 有什么限制?
- vue.js - VueJS 路由器不加载组件
- php - 在 Symfony 中更改 RabbitMQ 服务器