CodeIgniter-检查数据库中是否已存在子弹

时间:2019-03-26 04:58:40

标签: php codeigniter

我已经创建了一个函数add_items。我想如果database中已经存在该子弹,那么form_validation将运行并显示error message。如果使用slug exists,效果很好。但是主要的problem是,如果我想insert中的new Data中的database显然具有不同的slug,则data是没有插入。

public function add_items()
    {
       if($this->input->post()){
           if($this->input->is_ajax_request()){
               $title = $this->input->post('title');
               $url_title = url_title($title);
                $this->form_validation->set_rules($url_title,'callback_slug_exists');
                    if($this->form_validation->run() == FALSE)
                    {
                      echo "FAIL::Slug Already Exist::error";
                      return;
                    }
                    $item_price = $this->input->post('item_price');
                    $item_description = $this->input->post('item_description');
                    $insertData = array('item_title' =>$title,'item_url'=>$url_title,'item_price' =>$item_price,'item_description'=>$item_description,
                       'big_pic' =>$image_path."/".$image);
                    $result = $this->common_model->insert_record('store_items',$insertData);
                       if($result){
                         echo "OK::Record Inserted Successfully::success";
                         return;
                       }
                       else {
                         echo "FAIL::Record Insertion Failled::success";
                         return;
                       }

                   }
               }

            $this->show('admin/add_items.php');
}

这里是function slug_exists()

 function slug_exists($slug)
       {
           $this->common_model->slug_exists($slug);
       }

这是在模型中

 function slug_exists($slug)
 {
     $this->db->where('item_url',$slug);
     $query = $this->db->get('store_items');
     if ($query->num_rows() > 0){
         return true;
     }
     else{
         return false;
     }
 }

这是insert_record()

  function insert_record($tbl, $data)
    {
        $this->db->insert($tbl, $data);
        return $this->db->insert_id();
    }

这是数据库结构

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试这样

function slug_exists($slug)
{
   $this->db->where('item_url',$slug);
   $query = $this->db->get('store_items');
   if ($query->num_rows() > 0){
       return false;
   }
   else{
       return true;
   }
}

如果已存在段塞,则您需要使验证失败以获取错误,因此在现有段上返回false

还将答案/结果返回给回调函数

function slug_exists($slug)
{
   return $this->common_model->slug_exists($slug);
}

更新

控制器

 if($this->form_validation->run() == FALSE){
echo "FAIL::Slug Already Exist::error";
return;
 }else{

$item_price = $this->input->post('item_price');
$item_description = $this->input->post('item_description');
$insertData = array('item_title' =>$title,'item_url'=>$url_title,'item_price' =>$item_price,'item_description'=>$item_description,
    'big_pic' =>$image_path."/".$image);
$result = $this->common_model->insert_record('store_items',$insertData);
if($result){
    echo "OK::Record Inserted Successfully::success";
    return;
}
else {
    echo "FAIL::Record Insertion Failled::success";
    return;
}
}

答案 1 :(得分:0)

尝试:您可以直接在数组中发布数据。不需要定义它。

$insertArray=array(
item_title' =>$this->input->post('title'),
'item_url'=>$this->input->post('url_title'),
'item_price' =>$this->input->post('item_price'),
'item_description'=>$this->input->post('item_description'),
'big_pic' =>$image_path."/".$image);
$this->db->insert('store_items', $insertArray);