【发布时间】:2018-02-27 07:13:40
【问题描述】:
我有一个表格,我正在使用一个 codeigniter,现在我想做更新/插入。 因为我现在能做的只有更新。 示例:
如果我的 project_id 51 存在,它将更新,但如果 不存在 将插入。
这是数据库布局
tbldevdetails
dev_id | project_id | dev_devloper | dev_purchase_date | dev_handover_date |dev_oqood_status | dev_contract | dev_email | dev_landline | dev_mobile
查看
<!-- DEVELOPER DETAILS MODAL-->
<div class="modal fade" id="add-edit-dev" tabindex="-1" role="dialog">
<div class="modal-dialog">
<?php echo form_open(admin_url('projects/add_edit_devdetails/'.$project->id)); ?>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title"><?php echo _l('dev_title'); ?></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-6" id="tc_cperiod_to">
<?php $value = (isset($project) ? _d($project->dev_purchase_date) : _d(date('Y-m-d'))); ?>
<?php echo render_date_input('dev_purchase_date','dev_purchase_date',$value); ?>
</div>
<div class="col-md-6" id="dev_handover_date">
<?php $value = (isset($project) ? _d($project->dev_handover_date) : _d(date('Y-m-d'))); ?>
<?php echo render_date_input('dev_handover_date','dev_handover_date',$value); ?>
</div>
</div>
<div class="row">
<div class="col-md-6">
<?php echo render_input('dev_oqood_status','dev_oqood_status',isset($project) ? $project->dev_oqood_status : '','text'); ?>
</div>
<div class="col-md-6">
<?php echo render_input('dev_contact','dev_contact',isset($project) ? $project->dev_contact : '','text'); ?>
</div>
</div>
<div class="row">
<div class="col-md-4">
<?php echo render_input('dev_email','dev_email',isset($project) ? $project->dev_email : '','text'); ?>
</div>
<div class="col-md-4">
<?php echo render_input('dev_landline','dev_landline',isset($project) ? $project->dev_landline : '','text'); ?>
</div>
<div class="col-md-4">
<?php echo render_input('dev_mobile','dev_mobile',isset($project) ? $project->dev_mobile : '','text'); ?>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo _l('close'); ?></button>
<button type="submit" class="btn btn-info" autocomplete="off" data-loading-text="<?php echo _l('wait_text'); ?>"><?php echo _l('submit'); ?></button>
</div>
</div>
<!-- /.modal-content -->
<?php echo form_close(); ?>
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
控制器
public function add_edit_devdetails($project_id)
{
if (has_permission('projects', '', 'edit') || has_permission('projects', '', 'create')) {
$this->developer_model->update($this->input->post(), $project_id);
redirect($_SERVER['HTTP_REFERER']);
}
}
型号
public function update($data, $id)
{
$_data['data'] = $data;
$_data['project_id'] = $id;
$_data = do_action('before_update_project', $_data);
$data = $_data['data'];
$this->db->where('project_id',$id);
$pid = $this->db->get('tbldevdetails');
if($pid->num_rows() < 0)
{
$this->db->insert('tbldevdetails', $data);
} else {
$this->db->where('project_id', $id);
$this->db->update('tbldevdetails', $data);
}
}
}
我的更新正在处理此代码,但我的插入不起作用。
谢谢
【问题讨论】:
-
试试这个语句 - if($pid->num_rows() == 0) 代替 if($pid->num_rows()
-
可能已经在这里回答了。stackoverflow.com/questions/29318749/…
-
@Sumit 它有效!但反之亦然。我的更新不起作用
-
@gautamaggarwal 是的,我用它作为指导,但我有不同的问题
-
试试这个语句 print_r($pid);死();在模型页面中 $pid = $this->db->get('tbldevdetails');显示你的输出。我认为你没有从数据库中收到任何数据。所以你总是得到 0 行。
标签: mysql sql codeigniter sql-update sql-insert