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;
Esto evitará que, según el nombre, puede usar todas estas columnas para verificar, supongo que la columna correspondiente debe ser el correo electrónico, puede usar eso.
Acabo de agregar los parámetros dentro de la consulta para que se haga una idea, use el enlace de parámetros para evitar la inyección de sql.
O
select * from customers where .... //
Obtenga el tamaño del conjunto de resultados y si size > 0
eso significa que ya hay una fila, así que no la inserte.
Declaración Sql tomada de MySQL:Insertar registro si no existe en la tabla y modificado.