Konstantin18ko
@Konstantin18ko
Стоматолог

Как проверить запись на дубликат, если нет, то добавить?

Как сейчас выглядит код на добавление записи.
$dbc = mysqli_connect('localhost', 'root', '', 'cniis_blank', '3306')
                or die('Ошибка соединения с MySQL');
        $dbc->set_charset("utf8");
        
        $query = "INSERT INTO patient ( id, "
                . "type_of_payment, "
                . "in_card_number, "
                . "FIO_patient_surname, "
                . "FIO_patient_name, "
                . "FIO_patient_patronymic, "
                . "sex,"
                . "birthday, "
                . "enter_day, "
                . "FIO_doctor_surname, "
                . "FIO_doctor_name, "
                . "FIO_doctor_patronymic, "
                . "diagnosis, "
                . "diagnosis_letter, "
                . "diagnosis_numeral, "
                . "diagnosis_index, "
                . "out_card_number) "
                . "VALUES (NULL,"
                . "'$type_of_payment', "
                . "'$in_card_number', "
                . "'$FIO_patient_surname', "
                . "'$FIO_patient_name', "
                . "'$FIO_patient_patronymic', "
                . "'$sex', "
                . "'$birthday', "
                . "'$enter_day', "
                . "'$FIO_doctor_surname', "
                . "'$FIO_doctor_name', "
                . "'$FIO_doctor_patronymic', "
                . "'$diagnosis', "
                . "'$diagnosis_letter', "
                . "'$diagnosis_numeral', "
                . "'$diagnosis_index', "
                . "'$out_card_number')";
        
        
        $result = mysqli_query($dbc, $query) or die('Ошибка при запросе!');
        
        mysqli_close($dbc);


Как сделать проверку записи на дубликат, если есть дубликат по трем параметрам, то добавить запись.
Как найти запись по трем параметрам, уже понял - примерно так:
$query2 = "SELECT * FROM patient WHERE "
                . "in_card_number='$in_card_number' AND "
                . "FIO_patient_surname='$FIO_patient_surname' AND "
                . "birthday='$birthday'";


Как создать цикл который будет проверять и добавлять записи?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
i_d_1
@i_d_1
Программист PHP
сделайте в бд уникальный ключ из трех столбцов.
если надо либо добавить либо ничего не делать то INSERT подойдет.
если надо либо вставить либо обновить то INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

когда у вас уникальный комбинированный ключ есть в бд, вам не надо ничего предварительно выбирать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы