繁体   English   中英

Codeigniter-检查值是否唯一

[英]Codeigniter - check to see if the value is unique

我正在尝试检查值是否唯一。 我有此功能,但如何再次检查。

这是功能(正在运行):

public function is_unique($field, $val)
    {
        $this->db->select($field)->where($field, $val);
        $result = $this->get();
        $result = $result['data'];

        return $bool = count($result) == 0 ? $val : FALSE;
    }

在这里检查值是否唯一:

$unique_code = random_string('alnum', 6);
$unique_code = $this->posts->is_unuque('unique_code', $unique_code) != FALSE ? $unique_code: random_string('alnum', 6);

如果函数返回FALSE并检查新值(进行循环直到值唯一),如何创建新值?

尝试这个;

function is_unique($field, $val = null)
{
      if ( is_null($val))
      {
                // No $val supplied, so we generare a new one.
                $val = random_string('alnum', 6);
      }

      $this->db->select($field)->where($field, $val);
      $result = $this->db->get('table');

      if ( $result->num_rows() > 0 )
      {
                // Found a match
                // Try again....
                $this->is_unique($field);
      }
      else
      {
                // No match
                return $val;
      }
}

如果不提供$ val,该函数将生成一个新的随机字符串,然后检查它是否唯一。 如果不是,它将再次尝试。

return (count($result) == 0 ? $val : $this->is_unique($filed,random_string('alnum', 6));

可能是这样,而不是在结果唯一之前返回假运行函数

$unique_code = $this->posts->is_unuque('unique_code', $unique_code);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM