Są z tym dwa problemy.
Po pierwsze, możesz używać zapytań parametrycznych. Spójrz na PDO, to ci bardzo pomoże . Jest to nie tylko szybsze dla wielu wstawek, ale nie musisz się tak bardzo martwić o wstrzyknięcie SQL.
Po drugie, możesz użyć ON DUPLICATE KEY UPDATE
aby zająć się tą sprawą za Ciebie. W przeciwnym razie, gdy zapytanie się nie powiedzie, nie wiesz, dlaczego się nie udało. Może to wcale nie był problem zduplikowanego klucza!
Poza tym kod z punktu widzenia or
jest w porządku.