Как сделать так, чтобы не записывалось новое значение в MySQL phpMyAdmin если в первом уже есть такие значения только записанные в разные поля
У меня в таблицу вставляются значения first_code и second_code, но они должны быть уникальны я написал скрипт который должен был проверять это:
public function isChatInDatabase($code1, $code2){
$stmt = $this -> con -> prepare("SELECT id FROM chats WHERE (first_code = ? and second_code = ?) or (second_code = ? and first_code = ?)");
$stmt -> bind_param("ssss", $code1,$code2, $code1, $code2);
$stmt -> execute();
$stmt -> store_result();
if ($stmt -> num_rows() == 1){
return true;
}else{
return false;
}
}
но всё равно добавляется такое же значение. Я в PHP совсем недавно, а конкретнее он мне только для базы данных нужен. Буду очень благодарен за помощь.
У одного кода может быть несколько других кодов и даже он сам:

Мне нужно именно проверять, есть ли определённый код в поле first_code и у него есть второй код в поле second_code
Ответы (1 шт):
Автор решения: Archon
→ Ссылка
Я нашёл решение своей проблемы:
public function func($code1, $code2){
$stmt = $this -> con -> prepare("SELECT id FROM chats WHERE (first_code = ? and second_code = ?)");
$stmt -> bind_param("ss", $code1,$code2);
$stmt -> execute();
$stmt -> store_result();
if ($stmt -> num_rows() == 1){
return true;
}else{
$stmt = $this -> con -> prepare("SELECT id FROM chats WHERE (first_code = ? and second_code = ?)");
$stmt -> bind_param("ss", $code2,$code1);
$stmt -> execute();
$stmt -> store_result();
if ($stmt -> num_rows() == 1){
return true;
}else{
return false;
}
}
}
Теперь всё работает как надо.
