Как проверить вывешенное значение уже существует в db или нет?

Я хочу проверить, существует ли зарегистрированное имя пользователя в db с адресом электронной почты или нет. Как это проверить?

public function check_all($username) 
        {
            $check = $this->db->where("username","email", $username)->get("users");
            if($check->num_rows() > 0) {
                return false;
            } else {
                return true;
            }
        }

php,mysql,codeigniter,codeigniter-3,

1

Ответов: 3


1 принят

Если вы хотите проверить, существует ли имя пользователя, вы можете попробовать следующий фрагмент кода

public function check_all($username) 
        {
            $results = $this->db->select('USERNAME')
                               ->from('USERS')
                               ->where('USERNAME', $username)
                               ->get();

            if($results->num_rows() > 0)
            {
              //The user exist
              return true;
            } else {
                return false;
            }
        }

Если вы хотите проверить, есть ли у пользователя адрес электронной почты, который вы могли бы сделать

public function check_all($username) 
        {
            $results = $this->db->select('USERNAME')
                                ->from('USERS')
                                ->where('USERNAME', $username)
                                ->where('EMAIL IS NOT NULL')
                                ->get();

            if($results->num_rows() > 0)
            {
              //The user has an email
              return true;
            } else {
                return false;
            }
        }

1

Существует 3 подхода. Метод 1, выполните 2 запроса, сначала проверьте, существует ли он, и второй запрос для вставки, если 1-й найденный нуль совпадает.

Метод 2, используйте insert ignore синтаксис, поэтому дубликаты вставляются молча.

Метод 3, используйте ON DUPLICATE KEY UPDATEсинтаксис для обновления столбцов записи, которая была бы вставлена, если она еще не существует.


0

Просто дайте подтверждение, это просто и легко для проверки уже существующего пользователя / электронной почты в базе данных

[
'field' => 'username',
'label' => 'User Name',
'rules' =>'trim|required|is_unique[login.username],
                        'errors' =>array('is_unique' => 'The %s is already  taken')                                  

]

Здесь, is_unique[login.username]где login - это имя таблицы, а username - столбец, который directlt видит в базе данных и проверяет уникальное значение

для большего перехода в CI

php, mysql, codeigniter, codeigniter-3,
Похожие вопросы