Как 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 уже есть в базе";
}