Как MySQL/PHP запретить добавление записей в таблицу по значению одного из полей

подскажите как в MySQL/PHP запретить добавление данных в таблицу если в ней уже присутствует идентичная запись в поле ip.
К примеру : вставляю данные в таблицу

INSERT INTO `tbl_category11` (`category_id`, `category_name`, `ip`, ) VALUES
(1, 'test ', '4dde7dea22' );

Вставляю новые данные в таблицу здесь должен получить исключение

INSERT INTO `tbl_category11` (`category_id`, `category_name`, `ip`, ) VALUES
(2, 'test2', '4dde7dea22' );

Как я могу сравнить такой хеш в поле ip?


Ответы (1 шт):

Автор решения: Gelloiss

Или сделать в базе поле уникальным https://www.mysqltutorial.org/mysql-unique/ И тогда будет ошибка со стороны mysql, или проверка на php

$mysqli = new mysqli("db_host", "db_user", "db_password", "db_baseName");
$mysqli->set_charset("utf8");
//connect

$ip = 4dde7dea22;
$check = $mysqli->query("SELECT `ip` FROM `tbl_category11` WHERE `ip` = '$ip'");
if (mysqli_num_rows($check) === 0) { //записей нет, можно добавлять
  $mysqli->query("INSERT INTO `tbl_category11` (`category_id`, `category_name`, `ip`, ) VALUES
(2, 'test2', '$ip' )";
else {
  echo "Такой ip уже есть в базе";
}
→ Ссылка