仅当count小于10时才允许插入

时间:2014-05-19 06:27:42

标签: php sql codeigniter

我的数据库名称是注册。我需要验证两个条件。

  1. where status="checked"
  2. status count is <10
  3. 我可以插入数据。否则会显示一些警告信息

    这是我的代码:

    <?php
    class Profile extends CI_Model{
       function add($data){
          $this->load->database();
          $count1="select count(status) from registration where status='checked'";
          $this->db->where($count1<10);
          $this->db->insert('registration',$data);
       }
    

3 个答案:

答案 0 :(得分:2)

我需要更多信息来解决您的问题。

你可以使用log.message(&#39; info&#39;,print_r($ data,true));调试代码。

在此之前,您应将日志阈值设置为4并记录日志文件路径。 您可以查看日志文件以检查代码执行的位置和值是否通过。

class Profile extends CI_Model{

   function add($data){
      $this->load->database();
      $count1="select count(status) from registration where status='checked'";
      if(count1 < 10) {
          $this->db->insert('registration',$data);
      } else {
          return false;

   }

使用该假值显示警告。

答案 1 :(得分:0)

AFAIK您无法通过聚合查询执行此操作。启动查询,然后按代码检查计数

 if ( data < 10 ){
    ...
 } else {
    ...
 }

其他选项是创建SQL函数。

希望有所帮助

答案 2 :(得分:0)

一定不得超过10&#34;检查&#34;登记记录?你到目前为止所做的事情还可以。您从db获取计数,并且仅在计数小于10时插入。但是此检查不必在db中完成。只需在count&lt; 10:

<?php
  class Profile extends CI_Model{function add($data)
  {
    $this->load->database();
    $count1="select count(*) from registration where status = 'checked'";
    if($count1 < 10)
    {
      $this->db->insert('registration', $data);
    }
  }

这或多或少。我不定期使用php,因此可能仍然存在错误。你需要一个明确的提交吗?我不知道。