INSERT INTO Customers (FirstName, Address, Phone)
SELECT * FROM (SELECT '$firstName', '$address', '$phone') AS tmp
WHERE NOT EXISTS (
SELECT FirstName from Customers WHERE FirstName= '$firstName'
) LIMIT 1;
Isso impedirá com base no primeiro nome, você pode usar todas essas colunas para verificação, suponho que a coluna correspondente deve ser email, você pode usar isso.
Acabei de adicionar os parâmetros dentro da consulta para você ter uma ideia, use a vinculação de parâmetros para evitar injeção de sql.
OU
select * from customers where .... //
Obtenha o tamanho do conjunto de resultados e se
size > 0
isso significa que já existe uma linha, então não a insira. Instrução Sql extraída de MySQL:Insert record if não existe na tabela e modificado.